1、JDBC连接数据库
<%
//post出现乱码
request.setCharacterEncoding(“UTF-8”);
//引入用户名和密码
String name=request.getParameter(“username”);
String pwd=request.getParameter(“userpwd”);
//访问数据库
//1、加载驱动类mysql,com.mysql.jdbc.Driver是驱动类
Class.forName("com.mysql.jdbc.Driver");
//2、通过驱动类管理类来获得连接对象DriverManager
//connection连接对象
//下面的root是mysql用户名和密码。jdbccom.mysql.jdbc.Driver是连接端口
Connection connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8", "root", "root");
//3、连接之后表名要做的事情
String sql="SELECT COUNT(*) FROM damo WHERE username='"+name+"' AND userpwd='"+pwd+"'";
//4、执行sql语句(前提:需要把执行sql语句的对象创建出来statement )
Statement st=connection.createStatement();
//5、调用statement这个对象的方法,实现真正的执行(只要sql语句是查询语句select,都会有结果)
ResultSet rs=st.executeQuery(sql);
//6、从结果集中取数据
int result=0;
if(rs.next()){
result=rs.getInt(1);
}
//7、释放资源,关闭连接
rs.close();
st.close();
connection.close();
if(result==1){
session.setAttribute("name",name);
response.sendRedirect("index.jsp");
}else{
out.print("<script>alert('用户名或者密码错误!!!');location.href='login.jsp'</script>");
}
%>
2、JDBC定义
Java数据库连接技术(Java DataBase Connectivity),能实现Java程序对各种数据库的访问;
由一组使用Java语言编写的类和接口(JDBC API)组成,它们位于java.sql以及javax.sql中。
3、Statement与PreparedStatement区别
Statement由方法createStatement()创建,该对象用于发送简单的SQL语句
PreparedStatement由方法prepareStatement()创建,该对象用于发送带有一个或者多个输入参数的SQL语句
SQL语句使用“?”作为数据占位符
使用setXxx()方法设置数据
PreparedStatement—预编译:
效率、性能、开销
安全性
代码可读性
4、默写
1、什么是jdbc技术:数据库连接技术
2、JDBC常用的接口和类有哪些?作用是什么?
DriverManager 驱动管理者
Connection 连接对象
Statement 执行Sql语句对象
ResultSet 结果集对象
5、JDBC优点
不必为不同的数据库专门编写不同的程序,而只需要加载不同的数据库驱动即可
6、JDBC的编程步骤
Class.forName()加载驱动
DriverManager.getConnection(URL,用户名,密码)获得数据库连接
获得Statement/PreparedStatement对象,执行SQL语句
处理执行结果,释放资源