赞
踩
如果是 jdk7 和 jdk7 以前的版本,用 jdbc.jar
如果是 JDK8,用 jdbc4.jar
Java源码+sql语句打包下载
Class.forName(驱动全类名);
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
注意:如果这里写错会报DriverClassNotFound之类的异常
DriverManager.getConnection(url, user, password);
jdbc:odbc:MyDB
jdbc:sqlserver://localhost:1433;databaseName=MyDB
Statement stmt = conn.createStatement();
PreparedStatement ps = ps = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery(sql);
ResultSet rs = ps.executeQuery();
rs.getString("id");
rs.getString(1);//表中第一列字段是id,2就是获取name,以此类推
System.out.println("--------------------员工信息列表-------------------");
System.out.println("\tID\t姓名\t工资\t性别");
while(rs.next()) {
id = rs.getInt("id");
name = rs.getString("name");
salary = rs.getDouble("salary");
gender = rs.getString("gender");
System.out.println("\t"+id+"\t"+name+"\t"+salary+"\t"+gender);
}
rs.close();
ps.close();//Statement 、PreparedStatement用哪个就关闭哪个
conn.close();
package Utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionDemo {
public static void main(String[] args) {
Connection conn = null;
// 1.加载数据库驱动
try {
// 参数填写驱动的全类名(即包名+类名)
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.out.println("找不到驱动类");
}
// 2.获取数据库连接
// 2.1) 连接的数据库的路径
String url = "jdbc:sqlserver://localhost:1433;databaseName=MyDB";
// 2.2) 登录数据库的用户名
String user = "sa";
// 2.2) 登录数据库的密码
String password = "sa";
try {
// 2.3) 获取连接
conn = DriverManager.getConnection(url, user, password);
System.out.println("数据库连接成功!");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("数据库连接失败!");
}
// 关闭资源
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
1.在操作数据库时,常常需要获取数据库的连接,但是每个地方都写一遍上述代码会造成代码冗余,因此我们可以将它封装到一个工具类中,需要的时候直接调用即可。优化代码如下:
package Utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBUtil {
private static Connection conn = null;
// 加载数据库驱动,为提高效率应当写在static中随着类的加载而加载
static {
try {
// 参数填写驱动的全类名(即包名+类名)——告诉数据库,你的驱动在哪
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.out.println("找不到驱动类");
}
}
public static Connection getConnection() {
String url = "jdbc:sqlserver://localhost:1433;databaseName=MyDB";
String user = "sa";
String password = "sa";
try {
// 获取连接
conn = DriverManager.getConnection(url, user, password);
System.out.println("数据库连接成功!");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("数据库连接失败!");
}
return conn;
}
}
但是只获取连接是不够的,我们经常需要关闭连接,因此可以将其代码提取封装成方法,代码如下:
public void close(ResultSet rs, PreparedStatement ps, Connection conn) {
if(rs!=null){
try{
rs.close();
rs=null;
}catch(SQLException e){
e.printStackTrace();
System.out.println("关闭ResultSet失败");
}
}
if(ps!=null){
try{
ps.close();
ps=null;
}catch(SQLException e){
e.printStackTrace();
System.out.println("关闭PreparedStatement失败");
}
}
if(conn!=null){
try{
conn.close();
conn=null;
}catch(SQLException e){
e.printStackTrace();
System.out.println("关闭Connection失败");
}
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。