Java数据库连接——jdbc-odbc桥连接方式及汉字乱码问题
jdbc-odbc桥连接方式操作数据库SU(Course),其中Course属性有Cno,Cname,Cpno,Ccredit。
步骤:
1、配置数据源
控制面板下搜索管理工具->ODBC数据源(32位)->添加->选择sql server(填写名称mytest,服务器local或者.)->下一步->更改默认的数据库为SU->下一步->测试数据源至成功
用户数据源会多一条mytest,至此配置数据源成功。
2、在程序中连接数据源
打开eclipse,编写程序。
1 public class Demo_1 { 2 3 public static void main(String[] args) { 4 Connection ct=null; 5 Statement sm=null; 6 7 try { 8 //1.加载驱动(作用:把需要的驱动程序加入内存) 9 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 10 11 //2.得到连接(指定连接到哪个数据源) 12 //如果配置数据源时,选择的是windows nt验证,则不需要用户名和密码 13 //若选择的是用户验证,则需要加上用户名和密码 14 ct=DriverManager.getConnection("jdbc:odbc:mytest"); 15 16 //3.创建Statement或者PreparedStatement[区别] 17 sm=ct.createStatement(); //Statement用处:主要用于发送SQL语句到数据库 18 19 //4.执行(进行crud,创建数据库,备份数据库,删除数据……) 20 //演示添加一条数据到Course表,executeUpdate可以执行添加删除和修改操作 21 int i=sm.executeUpdate("insert into Course values('8','软件测试',4,3)"); 22 23 if(i==1){ 24 System.out.print("添加成功"); 25 }else { 26 System.out.print("添加不成功"); 27 } 28 29 } catch (Exception e) { 30 e.printStackTrace(); 31 }finally{ 32 //关闭资源!!!顺序是谁后创建则先关闭 33 try { 34 if(sm!=null){ //if语句是为了程序的健壮性 35 sm.close(); 36 } 37 if(ct!=null){ 38 ct.close(); 39 } 40 } catch (SQLException e) { 41 e.printStackTrace(); 42 } 43 } 44 } 45 }
执行程序,控制台输出添加成功。打开sql server2012,查看SU数据库的Course表,确实多了一条数据,则操作成功。
演示查询数据库或者添加的一条数据中存在汉字,就会出现乱码问题,解决方法如下:
点击Window->preferences,搜索workspace,修改编码方式为GBK,点击apply->OK,重新运行则不会出现乱码。
若仍然没有解决则重建Project,粘贴代码重新运行即可(原因:文件夹会保存之前的环境属性)。