1 封装

新建类 DBConnUtil  ,新建database.properties 文件储存链接信息如下所示

  1. jdbcDriver=com.mysql.jdbc.Driver
  2. jdbcUrl=jdbc\:mysql\://localhost\:3306/homework
  3. jdbcUser=root
  4. jdbcPasswd=123
  1. public class DBConnUtil {
  2.  
  3. private static String jdbcDriver = ""; //定义连接信息
  4. private static String jdbcUrl = "";
  5.  
  6. private static String jdbcUser = "";
  7.  
  8. private static String jdbcPasswd = "";
  9.  
  10. static{
  11. InputStream is = null;
  12. try {
  13. is = DBConnUtil.class.getClassLoader().getResourceAsStream("database.properties"); //加载database.properties文件
  14. Properties p = new Properties();
  15. p.load(is);
  16. jdbcDriver = p.getProperty("jdbcDriver"); //赋值
  17. jdbcUrl = p.getProperty("jdbcUrl");
  18. jdbcUser = p.getProperty("jdbcUser");
  19. jdbcPasswd = p.getProperty("jdbcPasswd");
  20.  
  21. } catch (IOException e) {
  22. e.printStackTrace();
  23. } finally {
  24. if(is != null){
  25. try {
  26. is.close(); // 关闭is
  27. } catch (IOException e) {
  28. e.printStackTrace();
  29. }
  30. }
  31. }
  32. }
  33.  
  34. public static Connection getConn(){ // 建立连接方法
  35. Connection conn = null;
  36. try {
  37. Class.forName(jdbcDriver);
  38. conn = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPasswd);
  39. } catch (ClassNotFoundException e) {
  40. e.printStackTrace();
  41. } catch (SQLException e) {
  42. e.printStackTrace();
  43. }
  44. return conn;
  45. }
  46.  
  47. public static void closeAll(ResultSet rs ,Statement st,Connection conn){ //关闭连接(用于增删改)
  48. if(rs != null){
  49. try {
  50. rs.close();
  51. } catch (SQLException e) {
  52. e.printStackTrace();
  53. }
  54. }
  55. if(st != null){
  56. try {
  57. st.close();
  58. } catch (SQLException e) {
  59. e.printStackTrace();
  60. }
  61. }
  62. if(conn != null){
  63. try {
  64. conn.close();
  65. } catch (SQLException e) {
  66. e.printStackTrace();
  67. }
  68. }
  69. }
  70.  
  71. public static void closeAll(ResultSet rs ,PreparedStatement ps,Connection conn){ // 关闭连接(用于查)
  72. if(rs != null){
  73. try {
  74. rs.close();
  75. } catch (SQLException e) {
  76. e.printStackTrace();
  77. }
  78. }
  79. if(ps != null){
  80. try {
  81. ps.close();
  82. } catch (SQLException e) {
  83. e.printStackTrace();
  84. }
  85. }
  86. if(conn != null){
  87. try {
  88. conn.close();
  89. } catch (SQLException e) {
  90. e.printStackTrace();
  91. }
  92. }
  93. }
  94.  
  95. }

2 测试增删改差

  2.1 插入数据

  1. public boolean ChaRu1(User user){
  2. boolean flag=true;
  3. Connection conn=null;
  4. Statement st=null;
  5. String sql="insert into user (name,pwd) values('"+user.getName()+"','"+user.getPwd()+"')";
  6. conn=DBConnUtil.getConn(); // getConn()方法是静态的,直接用类调用建立连接。
  7. try {
  8. st=conn.createStatement();
  9. int i=st.executeUpdate(sql);
  10. if(i==0){
  11. flag=false;
  12. }
  13. } catch (SQLException e) {
  14. // TODO Auto-generated catch block
  15. e.printStackTrace();
  16. }finally{
  17. DBConnUtil.closeAll(null, st, conn); //关闭连接,由于插入操作不涉及ResultSet类,故其对象rs无需关闭,用null代替。
  18. }
  19. return flag;
  20. }

  2.2 修改数据

  1. public boolean XiuGai2(User user){
  2. boolean flag=true;
  3. Connection conn =null;
  4. Statement st=null;
  5. String sql="update user set pwd='"+user.getPwd()+"' where name='"+user.getName()+"'";
  6. conn=DBConnUtil.getConn();
  7. try {
  8. st=conn.createStatement();
  9. st.executeUpdate(sql);
  10. } catch (SQLException e) {
  11. // TODO Auto-generated catch block
  12. e.printStackTrace();
  13. }finally{
  14. DBConnUtil.closeAll(null, st, conn);
  15. }
  16. return flag;
  17. }

  2.3 删除数据

  1. public boolean ShanChu2(int id){
  2. boolean flag=true;
  3. Connection conn=null;
  4. Statement st=null;
  5. String sql="delete from user where id="+id;
  6. conn=DBConnUtil.getConn();
  7. try {
  8. st=conn.createStatement();
  9. int i=st.executeUpdate(sql);
  10. if(i==0){
  11. flag=false;
  12. }
  13. } catch (SQLException e) {
  14. // TODO Auto-generated catch block
  15. e.printStackTrace();
  16. }finally{
  17. DBConnUtil.closeAll(null, st, conn);
  18. }
  19.  
  20. return flag;
  21. }

  2.4删除数据

  1. public List<User> ChanKan2(){
  2. List<User> list= new ArrayList<User>();
  3. Connection conn=null;
  4. Statement st= null;
  5. ResultSet rs=null;
  6. String sql="select * from user";
  7. conn=DBConnUtil.getConn();
  8. try {
  9. st=conn.createStatement();
  10. rs=st.executeQuery(sql);
  11. while(rs.next()){
  12. User user=new User();
  13. user.setName(rs.getString("name"));
  14. list.add(user);
  15. }
  16. } catch (SQLException e) {
  17. // TODO Auto-generated catch block
  18. e.printStackTrace();
  19. }finally{
  20. DBConnUtil.closeAll(rs, st, conn);
  21. }
  22. return list;
  23. }

JDBC 2 封装的更多相关文章

  1. JDBC操作封装

    这两天学习了一下jdbc的封装,依据的是下面这篇 http://wenku.baidu.com/link?url=FaFDmQouYkKO24ApATHYmA5QzUcj-UE-7RSSZaBWPqk ...

  2. 利用jdbc简单封装一个小框架(类似DBUtils)

    利用jdbc写的一个类似DBUtils的框架 package com.jdbc.orm.dbutils; import java.io.IOException; import java.io.Inpu ...

  3. struts神马的不过是对servlet、filter的封装而已,hibernate神马的也不过是对jdbc的封装而已,他们只是把一些常见的操作流程化了,如果不懂servlet、filter,不懂jdbc,使用struts和hibernate出问题了都不知道是怎么回事。

    struts神马的不过是对servlet.filter的封装而已,hibernate神马的也不过是对jdbc的封装而已,他们只是把一些常见的操作流程化了,如果不懂servlet.filter,不懂jd ...

  4. java的jdbc简单封装

    在学了jdbc一段时间后感觉自己写一个简单的封装来试试,于是參考的一些资料就写了一下不是多好,毕竟刚学也不太久 首先写配置文件:直接在src下建立一个db.properties文件然后写上内容 < ...

  5. java:Oracle(Jdbc的封装)和HTML(登录,注册,个人信息界面)

    1.Oracle Jdbc的封装: public class TestJdbc { // 把jdbc需要的属性,全部私有化 private static final String DRIVER = & ...

  6. Spring对Jdbc的封装——JdbcTemplate的使用

    链接:https://pan.baidu.com/s/15luDElW4oeEaP0nvEQ_40w 提取码:i2r1 JdbcTemplate是Spring对JDBC的封装,目的是使JDBC更加易于 ...

  7. 简单通用JDBC辅助类封装

    哎,最近很好久没在博客园写点东西了,由于工作的原因,接触公司自己研发的底层orm框架,偶然发现该框架在调用jdbc操作的时候参考的是hibernate 里面的SimpleJdbcTemplate,这里 ...

  8. Apache DbUtils - JDBC轻量级封装的工具包

    前段时间使用了Apache Common DbUtils这个工具,在此留个印,以备不时查看.大家都知道现在市面上的数据库访问层的框架很多,当然很多都是包含了OR-Mapping工作步骤的例如大家常用的 ...

  9. java学习之jdbc的封装

    jdbc是连接数据库必不可少的工具,但每次连接都要重新写一遍太麻烦了,也不利于代码的可读性,这里做一个工具类进行封装. package com.gh; import java.sql.Connecti ...

  10. java系列-JDBC的封装

    参考:http://blog.csdn.net/liuhenghui5201/article/details/16369773 一. 1.加载驱动-->>封装    --->> ...

随机推荐

  1. sql临时表的优点

    1: 临时表来组织数据,更高效的查询速度. 2:临时表的操作不会写入日志文件:好处:提高了 临时表操作的速度:坏处: 数据一旦丢失,无法恢复. 3: 临时表只允许当前会话框进行访问,因此不会担心死锁 ...

  2. ES6 随记(3.3)-- 数组的拓展

    上一章请见: 1. ES6 随记(1)-- let 与 const 2. ES6 随记(2)-- 解构赋值 3. ES6 随记(3.1)-- 字符串的拓展 4. ES6 随记(3.2)-- 正则的拓展 ...

  3. python中多重继承与获取对象

    1.python中多重继承 除了从一个父类继承外,Python允许从多个父类继承,称为多重继承. 多重继承的继承链就不是一棵树了,它像这样: class A(object): def __init__ ...

  4. MySQL性能优化之max_connections参数

    很多开发人员都会遇见”MySQL: ERROR 1040: Too many connections”的异常情况,造成这种情况的一种原因是访问量过高,MySQL服务器抗不住,这个时候就要考虑增加从服务 ...

  5. Book Review of “The practice of programming” (Ⅱ)

    The practice of programming Chapter 2 Algorithms and Data Structures Searching sequential search (li ...

  6. Spring_配置 Bean(2)

    applicationContext.xml <?xml version="1.0" encoding="UTF-8"?><beans xml ...

  7. spring security使用哈希加密的密码

    之前我们都是使用MD5 Md5PasswordEncoder 或者SHA ShaPasswordEncoder 的哈希算法进行密码加密,在spring security中依然使用只要指定使用自定义加密 ...

  8. cf780c

                                                                                             C. Andryush ...

  9. [USACO08DEC]在农场万圣节Trick or Treat on the Farm

    题目描述 Every year in Wisconsin the cows celebrate the USA autumn holiday of Halloween by dressing up i ...

  10. 内核hlist的使用

    struct hlist_head { struct hlist_node *first; }; struct hlist_node { struct hlist_node *next, **ppre ...