【转载】使用注解和反射实现通用性…

来源:互联网 发布:淘宝折扣网站取名 编辑:程序博客网 时间:2024/06/07 10:36
本文出处:http://ibeginner.sinaapp.com/index.php?m=Home&c=Index&a=detail&id=c5f98d452938346e3ec7c0d3630c6a62
JDBC是什么?

JDBCAPI是一个JavaAPI,可以访问任何类型表列数据,特别是存储在关系数据库中的数据。JDBC代表Java数据库连接。

JDBC通常的使用步骤有7步:

    加载JDBC驱动程序

   使用数据库的用户名和密码以及 URL 获取链接数据的 connection

    创建一个Statement或者是PreparedStatement(建议使用,放 SQL 注入)

    执行 SQL

    处理结果

    关闭数据库链接释放资源

 

下面是上述步骤的处理代码

在介绍 jdbc 连接之前先介绍配置信息的读取;

注意:要在项目中添加 MySQL 的驱动 jar 包,我用的是5.6.24,驱动包是mysql-connector-java-5.0.7-bin.jar

src/dbconfig.properties

driverClass=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=UTF-8

userName=root

password=

本系列文章主要针对 MySQL 数据来讲的,数据名为 test链接数据的用户名和密码分别是root ,由于我使用的是 xampp 集成的数据库所以默认的数据库密码是空的。

测试过程使用的数据表 user;并手动添加几条测试数据

DROP TABLE IFEXISTS `user`;

CREATE TABLE`user` (

  `id`int(11) NOT NULL AUTO_INCREMENT,

  `username`varchar(50) DEFAULT NULL,

  `brith`date DEFAULT NULL,

  `detail_time`datetime DEFAULT NULL,

  PRIMARYKEY (`id`)

)ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8;

 

SETFOREIGN_KEY_CHECKS = 1;

 

package com.ubuntuvim.utils;


 

public class DBConnUtils {

            

            privatestatic Connection conn = null;

            privatestatic Properties props = null;

 

            static{

                        props= new Properties();

                        try{

                                    //  加载配置文件

                                    props.load(DBConnUtils.class.getResourceAsStream("/dbconfig.properties"));

                        }catch (IOException e1) {

                                    e1.printStackTrace();

                        }

                        try{

                                    //  读取配置文件的值并加载 MySQL 驱动

                                    Class.forName(props.getProperty("driverClass"));

                        }catch (ClassNotFoundException e) {

                                    e.printStackTrace();

                        }

            }

            

            

            publicstatic Connection getConnection(){

                        try{

                                    // 根据 URL、用户名、密码链接数据库

                                    conn= DriverManager.getConnection(props.getProperty("url"),props.getProperty("username"),props.getProperty("password"));

                                    conn.setAutoCommit(false);  // 设置为 false 之后需要conn.commit();才会把SQL 的执行结果提交到数据库

                        }catch (SQLException e) {

                                    e.printStackTrace();

                        }

                        returnconn;

            }

 

            

            

            publicstatic void closeConn(){

                        try{

                                    if(conn != null)

                                                conn.close();

                        }catch (SQLException e) {

                                    e.printStackTrace();

                        }

                        

            }

}

 

 

下面请看详细解释;

1,加载驱动,以 MySQL 为例;

Class.forName(props.getProperty("driverClass"));

 

2,使用数据库的用户名和密码以及 URL 获取链接数据的 connection

// 根据 URL、用户名、密码链接数据库

conn =DriverManager.getConnection(

    props.getProperty("url"), 

    props.getProperty("username"), 

    props.getProperty("password"));

得到 connection 之后我们先使用 junit 测试是否链接成功;

public class DBConnUtilsTest{

 

      private static DBConnUtils dbConnUtil null;

      

      @BeforeClass

      public static void setUpBeforeClass() throws Exception{

            dbConnUtil new DBConnUtils();

      }

 

      @AfterClass

      public static void tearDownAfterClass() throws Exception{

            dbConnUtil null;

      }

 

      @Test

      public void testGetConntion(){

            assertNotNull("对象实例化失败了!!"dbConnUtil);

            assertNotNull("链接数据库失败了!!",DBConnUtils.getConnection());

      }

 

}

运行测试得到如下结果

【转载】使用注解和反射实现通用性的 <wbr>jdbc操作数据库之最简单的 <wbr>jdbc <wbr>操作_1

结果显示测试通过,connection 对象不为空,说明连接成功了。

由于字数限制,只能分割为2篇发表,后面的内容接在下面的文章

使用注解和反射实现通用性的 jdbc操作数据库之最简单的 jdbc 操作_2

 

0 0
原创粉丝点击