关闭

JDBC 实战应用

197人阅读 评论(0) 收藏 举报
分类:

JDBC 实战应用


1、JDBC 的使用顺序为:
        1)注册驱动 (只做一次) 
        2)建立连接(Connection)
       3)创建执行SQL的语句(Statement)
        4)处理执行结果(ResultSet)
        5)释放资源

2、实战应用
1)封装数据库连接字符串
[java] view plain copy
  1. /** 
  2.  * JDBC配置信息 
  3.  */</span>  
  4. public class JdbcConfig {  
  5.     private String driverName;  
  6.     private String url;  
  7.     private String userName;  
  8.     private String password;  
  9.       
  10.     public String getDriverName() {  
  11.         return driverName;  
  12.     }  
  13.     public void setDriverName(String driverName) {  
  14.         this.driverName = driverName;  
  15.     }  
  16.     public String getUrl() {  
  17.         return url;  
  18.     }  
  19.     public void setUrl(String url) {  
  20.         this.url = url;  
  21.     }  
  22.     public String getUserName() {  
  23.         return userName;  
  24.     }  
  25.     public void setUserName(String userName) {  
  26.         this.userName = userName;  
  27.     }  
  28.     public String getPassword() {  
  29.         return password;  
  30.     }  
  31.     public void setPassword(String password) {  
  32.         this.password = password;  
  33.     }  
  34. }  
        2)封装数据库常用操作
[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. public class DbUtil {  
  2.     /** 
  3.      * 取得Connection 
  4.      * @return 
  5.      */</span>  
  6.     public static Connection getConnection(){  
  7.    
  8.         Connection conn=null;  
  9.         try {  
  10.               //通过读取配置文件获取数据库连接字符串</span>  
  11.             JdbcConfig jdbcConfig=XmlConfigReader.getInstance().getJdbcConfig();  
  12.               //加载驱动</span>  
  13.   
  14.             Class.forName(jdbcConfig.getDriverName());  
  15.             String url=jdbcConfig.getUrl();  
  16.             String userName=jdbcConfig.getUserName();  
  17.             String password=jdbcConfig.getPassword();      
  18.               //建立连接</span>  
  19.             conn = (Connection) DriverManager.getConnection(url, userName, password);  
  20.         } catch (ClassNotFoundException e) {  
  21.             e.printStackTrace();  
  22.         } catch (SQLException e) {  
  23.             e.printStackTrace();  
  24.         }  
  25.         return conn;  
  26. }  
  27. }  
3)完成用户的添加操作
[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. public class UserManager {  
  2.     /** 
  3.      * 添加用户 
  4.      */</span>  
  5.     public void addUser(User user){  
  6.         //创建SQL语句</span>  
  7.         String sql="insert into t_user(user_id,user_name,password,contact_tel,email,create_date)"+  
  8.                     " values(?,?,?,?,?,?)";  
  9.           
  10.         Connection conn=null;  
  11.         PreparedStatement pstmt=null;  
  12.         try{  
  13.             //获取Connection</span>  
  14.             conn=DbUtil.getConnection();  
  15.             pstmt=conn.prepareStatement(sql);  
  16.               
  17.             //设置参数(这种方式可防止sql注入)</span>  
  18.             pstmt.setString(1, user.getUserId());  
  19.             pstmt.setString(2, user.getUserName());  
  20.             pstmt.setString(3, user.getPassword());  
  21.             pstmt.setString(4, user.getContactTel());  
  22.             pstmt.setString(5, user.getEmail());  
  23.             pstmt.setTimestamp(6new Timestamp(System.currentTimeMillis()));  
  24.               
  25.             //执行用户添加操作</span>  
  26.             pstmt.executeUpdate();  
  27.         }catch(SQLException e){  
  28.             e.printStackTrace();  
  29.         }finally{  
  30.             DbUtil.close(pstmt);  
  31.             DbUtil.close(conn);  
  32.         }  
  33.     }  
  34. }    

4)如果添加多个用户,则需要一点小小的变动
[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. public class UserManager {  
  2.     /** 
  3.      * 添加用户 
  4.      */</span>  
  5.     public void addUser(List<User> userList){  
  6.         //创建SQL语句</span>  
  7.         String sql="insert into t_user(user_id,user_name,password,contact_tel,email,create_date)"+  
  8.                     " values(?,?,?,?,?,?)";  
  9.           
  10.         Connection conn=null;  
  11.         PreparedStatement pstmt=null;  
  12.         try{  
  13.             //获取Connection</span>  
  14.             conn=DbUtil.getConnection();  
  15.             pstmt=conn.prepareStatement(sql);  
  16.             for(Iterator<User> iter=userList.iterator();iter.hasNext();){  
  17.             User user=iter.next();  
  18.             //设置参数(这种方式可防止sql注入)</span>  
  19.             pstmt.setString(1, user.getUserId());  
  20.             pstmt.setString(2, user.getUserName());  
  21.             pstmt.setString(3, user.getPassword());  
  22.             pstmt.setString(4, user.getContactTel());  
  23.             pstmt.setString(5, user.getEmail());  
  24.             pstmt.setTimestamp(6new Timestamp(System.currentTimeMillis()));  
  25.             pstmt.addBatch();  
  26.             }  
  27.            //执行用户添加操作</span>  
  28.             pstmt.executeBatch();  
  29.         }catch(SQLException e){  
  30.             e.printStackTrace();  
  31.         }finally{  
  32.             DbUtil.close(pstmt);  
  33.             DbUtil.close(conn);  
  34.         }  
  35.     }  
  36. }    
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

【JDBC】JDBC入门汇总及范例讲解

JDBC API是一个Java API,可以访问任何类型表列数据,特别是存储在关系数据库中的数据。JDBC代表Java数据库连接。
  • Evankaka
  • Evankaka
  • 2015-04-30 08:52
  • 4282

JDBC 简单示例

JDBC 1.简介         JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访...
  • TKD03072010
  • TKD03072010
  • 2012-01-05 11:37
  • 7280

Java JDBC学习实战(一): JDBC的基本操作

一、JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问。 下面介绍一些常用的API,来源...
  • zuiwuyuan
  • zuiwuyuan
  • 2014-09-26 10:47
  • 2799

JDBC简单入门_JDBC小例子

JDBC是什么JDBC就是相当于一个数据库的管家,不管是何种数据库,MySQL、Oracle 等数据库,都可以通过JDBC来统一对各种不同的数据库进行操作。这就相当方 便了,这时,你就不必为每个数...
  • qq_30137777
  • qq_30137777
  • 2016-12-02 10:59
  • 2186

【java项目实战】ThreadLocal封装Connection,实现同一线程共享资源

线程安全一直是程序猿们关注的焦点,多线程也一直是比较让人头疼的话题,想必大家曾经也遇到过各种各种的问题,我就不再累述了。当然,解决方式也有很多,这篇博文给大家提供一种很好的解决线程安全问题的思路。 。...
  • jiuqiyuliang
  • jiuqiyuliang
  • 2014-08-08 08:02
  • 9047

Java JDBC学习实战(一): JDBC的基本操作

一、JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问。 下面介绍一些常用的API,来源...
  • zuiwuyuan
  • zuiwuyuan
  • 2014-09-26 10:47
  • 2799

《次时代Java编程(一):续 vertx-sync实践》

转载自:https://blog.maxleap.cn/archives/1013 vertx-sync是什么 上一篇我们已经讲了 Fiber 相关的知识,想必大家对Java实现类...
  • yalear2012
  • yalear2012
  • 2016-12-14 18:44
  • 1411

学习《spring 3.x企业应用开发实战》之使用Spring JDBC访问数据库

1、在DAO中使用JdbcTemplate (1)在Spring配置文件中配置DAO一般分为4个步骤: 定义DataSource;定义JdbcTemplate;声明一个抽象的,以便所有DAO复用配...
  • qq_29583513
  • qq_29583513
  • 2016-08-17 20:02
  • 637

Spring 3.x企业应用开发实战(13)----Spring JDBC访问数据库

Spring JDBC是Spring所提供的持久层技术。他的目的是降低JDBC API门槛,以一种更直接、更简洁的方式使用JDBC API。
  • gexiuhua
  • gexiuhua
  • 2013-09-29 11:22
  • 1897

JDBC 实战应用

1、JDBC 的使用顺序为:         1)注册驱动 (只做一次)          2)建立连接(Connection)       ...
  • u010927139
  • u010927139
  • 2015-05-26 10:12
  • 1089
    文章分类