您的位置:首页 > 数据库 > MySQL

用jdbc连接mysql数据库(基础篇)

2015-07-31 10:39 477 查看
package cn.lfd.utils;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class JdbcUtils {
private static String driver;//驱动名称
private static String url;//url
private static String username;//mysql用户名
private static String password;//密码

static{
InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("db.properties");//读取配置文件
Properties p = new Properties();
try{
p.load(in);//把配置文件读取到properties对象中

//取出properties对象中的数据
driver = p.getProperty("driver");
url = p.getProperty("url");
username = p.getProperty("username");
password = p.getProperty("password");

Class.forName(driver);//在驱动管理器中注册一个mysql的驱动
}catch(Exception e) {
throw new RuntimeException();
}
}

public static Connection getConn() throws SQLException {
return DriverManager.getConnection(url,username,password);//通过数据库管理器拿到连接
}

//释放资源和连接
public static void release(Connection conn, Statement st, ResultSet rs) {
if(conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
if(st!=null) {
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
if(rs!=null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
}
}
}


db.properties文件:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/messageborad?useUnicode=true&characterEncoding=utf-8
username=root
password=root


dao层模板代码:

package cn.lfd.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import cn.lfd.dao.UserDao;
import cn.lfd.domain.User;
import cn.lfd.exception.DaoRuntimeException;
import cn.lfd.utils.JdbcUtils;

public class UserDaoImpl implements UserDao {

public User find(User user) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;

try {
conn = JdbcUtils.getConn();//获取连接
//准备好sql语句
String sql = "select username, password, root from user where username = ? and password = ?";
ps = conn.prepareStatement(sql);//用PreparedStatement预编译sql语句,防sql注入
ps.setString(1, user.getUsername());//设置第一个参数
ps.setString(2, user.getPassword());//设置第二个参数

rs = ps.executeQuery();//执行查询语句,并把结果保存在ResultSet中

if(rs.next()) {//如果结果集中有数据,进入里面,如果结果集中有多个数据,用while
User u = new User();
u.setUsername(rs.getString("username"));//取出结果集中数据封装到对象中
u.setPassword(rs.getString("password"));
u.setRoot(rs.getString("root"));
return u;//把对象作为返回结果返回
}
} catch (SQLException e) {
throw new DaoRuntimeException(e);//抛出一个运行时异常
}finally{
JdbcUtils.release(conn, ps, rs);//释放资源
}
return null;
}
}


注意:

1.连接数据库必须在工程中导入驱动jar包

2.操作完数据库必须释放资源
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql 数据库 jdbc