一.概述
Java数据库连接(JDBC)是每一个web应用都需要用到的技术,编程人员可以使用这个API接口连接到数据库,并使用结构化查询语言完成对数据库的查找与更新。
在学生信息管理系统的util包中有个DbUtil工具类,我们用它来实现对数据库的操作。
在本文,我们来研究一下JDBC的基本步骤,以及各个常用方法。
二.DbUtil.java
package com.sisheng.util;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;
public class DbUtil {
private static String dbUrl; // 数据库地址
private static String dbUserName; // 账户名
private static String dbPassword; // 账户密码
private static String jdbcName; // jdbc名称
/**
* 设置数据库连接参数
*
* @throws IOException
*/
public static void setDbParameter() throws IOException {
String propsFilename = "db.properties"; // properties文件名称
Properties props = new Properties(); // properties类
props.load(DbUtil.class.getClassLoader().getResourceAsStream(
propsFilename)); // 通过类加载器的路径来读取配置文件
dbUrl = props.getProperty("dbUrl");
dbUserName = props.getProperty("dbUserName");
dbPassword = props.getProperty("dbPassword");
jdbcName = props.getProperty("jdbcName");
}
/**
* 获取数据库连接
*
* @return
* @throws Exception
* @throws Exception
*/
public static Connection getCon() throws Exception {
setDbParameter(); // 设置数据库连接参数
Class.forName(jdbcName); // 注册驱动
Connection con = DriverManager.getConnection(dbUrl, dbUserName,
dbPassword);
return con;
}
/**
* 关闭数据库连接
*
* @param con
* @throws Exception
*/
public static void closeCon(Connection con) throws Exception {
if (con != null) {
con.close();
}
}
// 测试
public static void main(String[] args) {
try {
Connection conn = getCon();
System.out.print("连接成功!");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
db.properties:
dbUrl = jdbc:mysql://localhost:3306/db_studentInfo
dbUserName = root
dbPassword = a13229568334
jdbcName = com.mysql.jdbc.Driver
三.连接数据库的基本步骤
1.获取db.properties文件的属性信息。
2.使用Class.forName(jdbcName) 注册驱动
3.使用DriverManager.getConnection(dbUrl, dbUserName,dbPassword);获取数据库连接
四.执行sql语句
1.登录验证的login方法
public User login(Connection con, User user) throws Exception {
User result = null;
String sql = "select * from t_user where userName=? and password=?";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setString(1, user.getUsername());
pstmt.setString(2, user.getPassword());
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
result = new User();
result.setUsername(user.getUsername());
result.setPassword(user.getPassword());
}
return result;
}
2.执行sql语句的基本步骤:
①声明sql语句,里面的参数用?参数占位符代替。
String sql = "select * from t_user where userName=? and password=?";
②使用PreparedStatement,预编译处理sql。
PreparedStatement pstmt = con.prepareStatement(sql);
③设置参数
pstmt.setString(1, user.getUsername());
pstmt.setString(2, user.getPassword());
④执行,查询操作使用executequery返回resultset,其他的更新操作或者create,delete等操作则使用executeupdate返回受影响的记录数。
ResultSet rs = pstmt.executeQuery();
⑤对返回结果resultset进行利用
if (rs.next()) {
result = new User();
result.setUsername(user.getUsername());
result.setPassword(user.getPassword());
}
五.为什么用PrepareStatement?
这篇文章讲的很不错:http://www.importnew.com/5006.html