JDBC是什么?
JDBC
API是一个Java
API,可以访问任何类型表列数据,特别是存储在关系数据库中的数据。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 IF
EXISTS `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,
PRIMARY
KEY (`id`)
)
ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8;
SET
FOREIGN_KEY_CHECKS = 1;
|
package com.ubuntuvim.utils;
public class DBConnUtils {
private
static Connection conn = null;
private
static 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();
}
}
public
static 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();
}
return
conn;
}
public
static 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());
}
}
|
运行测试得到如下结果
结果显示测试通过,connection 对象不为空,说明连接成功了。
由于字数限制,只能分割为2篇发表,后面的内容接在下面的文章
使用注解和反射实现通用性的 jdbc操作数据库之最简单的 jdbc 操作_2
版权声明:本文为博主原创文章,未经博主允许不得转载。