public User checkUserLoginDao(String uname, String pwd) {
//声明jdbc对象
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
//声明变量
User u = null;
try {
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
//获取连接
conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/409", "root", "123456");
//创建sql命令
String sql = "select * from t_user where uname=? and pwd=?";
//创建sql命令对象
ps = conn.prepareStatement(sql);
//给占位符赋值
ps.setString(1, uname);
ps.setString(2, pwd);
//执行sql
rs = ps.executeQuery();
//遍历结果
while (rs.next()) {
//给变量赋值
u = new User();
u.setUid(rs.getInt("uid"));
u.setUname(rs.getString("uname"));
u.setPwd(rs.getString("pwd"));
u.setSex(rs.getString("sex"));
u.setAge(rs.getInt("age"));
u.setBirth(rs.getString("birth"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//关闭资源
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
ps.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//返回结果
return u;
}
1.访问数据库的流程
--加载驱动管理器
--建立与数据库的连接
--发送sql查询
--得到查询结果
2.JDBC常用接口
Driver接口
– Driver接口由数据库厂家提供,对于java开发者而言,只需要使用
Driver接口就可以了。
– 在编程中要连接数据库,必须先装载特定厂商的数据库驱动程序。不
同的数据库有不同的装载方法。
– 驱动:就是各个数据库厂商实现的Sun公司提出的JDBC接口。 即对
Connection等接口的实现类的jar文件
– 装载MySql驱动
• Class.forName("com.mysql.jdbc.Driver");
– 装载Oracle驱动
• Class.forName("oracle.jdbc.driver.OracleDriver");
• DriverManager接口
– DriverManager是JDBC的管理层,作用于用户和驱动程序之间。
– DriverManager跟踪可用的驱动程序,并在数据库和相应的驱动程序
之间建立连接。
Connection接口
– Connection与特定数据库的连接(会话),在连接上下文中执行 SQL
语句并返回结果。
– DriverManager的getConnection()方法建立在JDBC URL中定义的数
据库Connection连接上
– 连接MYSQL数据库:
– Connection con =
DriverManager.getConnection("jdbc:mysql://host:port/database","user",
"password");
– 连接ORACLE数据库:
– Connection con =
DriverManager.getConnection("jdbc:oracle:thin:@host:port:databse","us
er","password");
Statement接口
– 用于执行静态 SQL 语句并返回它所生成结果的对象。
– 三种Statement类:
• Statement:
– 由createStatement创建,用于发送简单的SQL语句。(不带参数的)
• PreparedStatement:
– 继承自Statement接口,由prepareStatement创建,用于发送含有一个或多
个输入参数的sql语句。PreparedStatement对象比Statement对象的效率更
高,并且可以防止SQL注入。我们一般都用PreparedStatement.
• CallableStatement:
– 继承自PreparedStatement 。由方法prePareCall创建,用于调用存储过程。
– 常用的Statement方法:
• execute():运行语句,返回是否有结果集。
• executeQuery():运行select语句,返回ResultSet结果集。
• executeUpdate():运行insert/update/delete操作,返回更新的行数。
• ResultSet接口
– Statement执行SQL语句时返回ResultSet结果集。
– ResultSet提供的检索不同类型字段的方法,常用的有:
• getString():获得在数据库里是varchar、char等数据类型的对象。
• getFloat():获得杂数据库里是Float类型的对象。
• getDate():获得在数据库里面是Date类型的数据。
• getBoolean():获得在数据库里面是Boolean类型的数据
• 依序关闭使用之对象及连接:
– ResultSet Statement Connection