Java中如何与数据库建立连接?

Python015

Java中如何与数据库建立连接?,第1张

导入java.sql包 \x0d\x0a一、加载要连接数据库的驱动程序 \x0d\x0a//Jdbc-Odbc桥 和 Microsoft Access 数据库 \x0d\x0aClass.forName("sun.jdbc.odbc.JdbcOdbcDriver")\x0d\x0a// SQL Server 驱动程序: \x0d\x0aClass.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver")\x0d\x0a注:Class.forName()方法将给定的类加载到JVM,如果系统中不存在给定的类,则会引发异常 \x0d\x0a二、通过驱动程序管理器得到连接实例 \x0d\x0aConnection conn=null\x0d\x0a//1. \x0d\x0a//1.1建立数据源 \x0d\x0aconn=DriverManager.getConnection("jdbc:odbc:MyDataSource")//MyDataSource是数据源名称 \x0d\x0a//1-2、不建立数据源 \x0d\x0aconn=DriverManager.getConnection("jdbc:odbc:Driver=Microsoft Access Driver (*.mdb)DBQ=C:\\VBTest.mdb")\x0d\x0a//2.SQL Server \x0d\x0aconn=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433databasename=mydb","sa","")\x0d\x0a\x0d\x0a注:DriverManager类跟踪已注册的驱动程序,通过getConnection(URL)方法, 找到一个能够连接至URL中指定的数据库驱动程序 \x0d\x0a它接收三个参数, 分别表示1 数据源的名称、类型 2 用户名(可选) 3 密码(可选) \x0d\x0a三、基于连接对象建立处理器对象 \x0d\x0aStatement stmt=conn.createStatement()\x0d\x0a四、准备sql命令 \x0d\x0aString sql="select * from Student"\x0d\x0a五、执行命令返回结果集 \x0d\x0aResultSet rs=stmt.executeQuery(sql)\x0d\x0a六、显示结果集 \x0d\x0awhile(rs.next())//只要后面有记录 \x0d\x0a{ \x0d\x0a//对当前行的所有字段遍历 \x0d\x0afor(int i=1i 回答于 2022-12-11

ConnectionManager.java

import java.sql.*

public class ConnectionManager {

private static final String DRIVER_CLASS="com.microsoft.sqlserver.jdbc.SQLServerDriver"

private static final String DATABASE_URL="jdbc:sqlserver://localhost:1433DatabaseName=student"

private static final String DATABASE_USER="xz"

private static final String DATABASE_PASSWORD="test"

private ConnectionManager()

{}

/**

* 返回连接

* @return Connection

* @throws DBAccessException

*/

public static Connection getConnection()

{

Connection dbConnection=null

try {

Class.forName(DRIVER_CLASS)

dbConnection=DriverManager.getConnection(DATABASE_URL,DATABASE_USER,DATABASE_PASSWORD)

} catch (ClassNotFoundException e1) {

// TODO Auto-generated catch block

e1.printStackTrace()

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

return dbConnection

}

/**

* 关闭连接

* @param conn

* Connection

*/

public static void closeConnection(Connection conn)

{

try{

if(conn!=null &&!conn.isClosed())

{

conn.close()

conn=null

}

}catch(Exception ex)

{

System.out.println(ex.getMessage())

}

}

/**

* 关闭结果集

* @param rs

* ResultSet

*/

public static void closeResultSet(ResultSet rs)

{

try{

if(rs!=null)

{

rs.close()

rs=null

}

}catch(Exception ex)

{

System.out.println(ex.getMessage())

}

}

/**

* 关闭SQL预处理语句

* @param pstmt

* PreparedStatement

*/

public static void closePreparedStatement(PreparedStatement pstmt)

{

try{

if(pstmt!=null)

{

pstmt.close()

pstmt=null

}

}catch(Exception ex)

{

System.out.println(ex.getMessage())

}

}

/**

* 关闭SQL语句

* @param stmt

* Statement

*/

public static void closeStatement(Statement stmt)

{

try{

if(stmt!=null)

{

stmt.close()

stmt=null

}

}catch(Exception ex)

{

System.out.println(ex.getMessage())

}

}

public static void main(String[]args)

{

try {

Connection con=ConnectionManager.getConnection()

if(!con.isClosed())

System.out.println("数据库连接成功。。。。。")

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}

}

User.javapublic class User {

private String username

private String userpass

public String getUsername() {

return username

}

public void setUsername(String username) {

this.username = username

}

public String getUserpass() {

return userpass

}

public void setUserpass(String userpass) {

this.userpass = userpass

}

}

UserDAO.javaimport java.util.*

import java.sql.*

public class UserDAO {

public List<User>getAllUser()

{

Connection conn=null

PreparedStatement pstmt=null

ResultSet rs=null

List<User>userList=new ArrayList<User>()

String sql="select UserName,UserPas from Users"

try {

conn=ConnectionManager.getConnection()

pstmt=conn.prepareStatement(sql)

rs=pstmt.executeQuery()

while(rs.next())

{

User u=new User()

u.setUsername(rs.getString("UserName"))

u.setUserpass(rs.getString("UserPas"))

userList.add(u)

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}finally

{

ConnectionManager.closeConnection(conn)

ConnectionManager.closePreparedStatement(pstmt)

ConnectionManager.closeResultSet(rs)

}

return userList

}

}