使用Statement:
1. 注册数据库
Class.forName(“com.mysql.jdbc.Driver”);
2. 建立数据库连接
Connection conn=DriverManager.getConnection(“jdbc.mysql://localhost:3306/数据库名?user=root&password=root”);
3. 获取传输器
Statement state = conn.createStatement();
4. 穿过传输器对象传输sql语句获取结果集对象
ResultSet result = state.executeQuery(“select name from user”);
5. 结果集对象遍历数据
while(result.next())
{
String name = result.getString(“name”);
System.out.println(name);
}
6. 关闭连接等资源
result.close();
conn.close();
State.close();
使用Preparedstatement连接:
Try{
1. Class.forName(“com.mysql.jdbc.Driver”);
2. Connection conn = DriverManager.getConection(“jdbc.mysql://localhost:3306/数据库名?user=rooot?password=root”);
3. PraperStatemet ps = conn.preparedStatement(“insert into user valuse(?,?,?)”);
ps.setInt(1,21);//代表设置给第一个?的值为Int型的21
ps.setString(2,”name”);//代表设置给第二个?的值为String型的name;
java.util.Date utilDate=new java.util.Date();//进行类型转换,由util类型的date转化为sql类型的
ps.setDate(3, new java.sql.Date(utilDate.getTime()));
4. ps.execute();
}
Catch(Exection e)
{
5.e.printStatckTrace();
}
finally{
try {
if(ps!=null)ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(conn!=null)conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
拓展:
Statement与PreparedStatement之间的联系和区别
联系:
Preparedstatement是继承自Statement,都是接口
区别:
Preparedstatement可以使用占位符,是预编译的,批处理比statement效率高
数据库连接池的好处:
假设网站一天有很大的访问量,数据库服务器就需要为每次连接创建一次数据库连接,极大的浪费数据库的资源,并且极易造成数据库服务器内存溢出、拓机。
数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现的尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标.数据库连接池正式针对这个问题提出来的.数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个。