用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.操作完数据库必须释放资源
相关文章推荐
- jdbc中的Statement和PreparedStatement接口对象
- MySQL中的integer 数据类型
- MySQL存储过程
- Android之获取手机上的图片和视频缩略图thumbnails
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- 数据库链接字符串查询网站
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志