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,粘贴代码重新运行即可(原因:文件夹会保存之前的环境属性)。

原文地址:https://www.cnblogs.com/cxq1126/p/7355095.html