java web与数据库相连,具体怎么做

2025-01-01 05:12:21
推荐回答(4个)
回答1:

采用JDBC或JDBC-ODBC的方式连接。 例如 import java.sql.*; public class DB { private static final String DRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; // 驱动类 private static final String URL = "jdbc:sqlserver://127.0.0.1:1433;databaseName=customerDB"; // 连接字符串 private static final String UID = "sa"; // 登陆数据库用户 private static final String UPASS = ""; // 登陆数据库密码 private Connection con = null; // 数据库连接对象 private Statement st = null; // 数据库语句执行对象 private PreparedStatement pst = null; // 数据库预编译语句执行对象 // private CallableStatement cst=null; //数据库存储过程执行对象 private ResultSet rs = null; // 数据库查询结果对象 /** * 数据库操作类构造方法 */ public DB() { try { Class.forName(DRIVER); con = DriverManager.getConnection(URL, UID, UPASS); st = con.createStatement(); System.out.println("DataBase connected success."); } catch (ClassNotFoundException e) { e.printStackTrace(); System.out.println("DataBase connected error."); } catch (SQLException e) { e.printStackTrace(); System.out.println("DataBase connected error."); } } /** * 执行数据库查询语句 * * @param sql * 查询语句 * @return 查询结果集 */ public ResultSet execQuery(String sql) { try { System.out.println("execute '" + sql + "'"); rs = st.executeQuery(sql); } catch (SQLException e) { e.printStackTrace(); System.out.println("Erro:execute this statement '" + sql + "'"); } return rs; } /** * 执行数据库预编译查询语句 * * @param sql * 预编译查询语句 * @param param * 预编译查询语句参数 * @return 查询结果集 */ public ResultSet execQuery(String sql, String[] param) { try { pst = con.prepareStatement(sql); for (int i = 0; i < param.length; i++) { pst.addBatch(param[i]); } rs = pst.executeQuery(); } catch (SQLException e) { e.printStackTrace(); } return rs; } /** * 执行数据库增删改操作语句 * * @param sql * 增删改语句 * @return 影响行数 */ public int execUpdate(String sql) { int res = 0; try { System.out.println("execute '" + sql + "'"); res = st.executeUpdate(sql); } catch (SQLException e) { e.printStackTrace(); System.out.println("Erro:execute this statement '" + sql + "'"); } return res; } /** * 执行数据库预编译的增删改操作语句 * * @param sql * 预编译增删改语句 * @param param * 预编译语句参数 * @return 影响行数 */ public int execUpdate(String sql, String[] param) { int res = 0; try { pst = con.prepareStatement(sql); for (int i = 0; i < param.length; i++) { pst.addBatch(param[i]); } } catch (SQLException e) { e.printStackTrace(); } return res; } /** * 关闭数据库连接并释放资源 */ public void close() { try { if (rs != null) { rs.close(); rs = null; } if (st != null) { st.close(); st = null; } if (pst != null) { pst.close(); pst = null; } if (con != null && !con.isClosed()) { con.close(); con = null; } System.out.println("DataBase shutdown success."); } catch (SQLException e) { e.printStackTrace(); System.out.println("DataBase shutdown error."); } } }

回答2:

package dao; import java.sql.*; public class ConnDB { private Connection con =null; public Connection getCon() { return con; } public ConnDB() { //1.加驱动 try { Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); } catch (ClassNotFoundException e) { // TODO 自动生成 catch 块 e.printStackTrace(); } //2.建连接 try { String url="jdbc:sqlserver://localhost:1433;databaseName=JavaDB"; con=DriverManager.getConnection(url,"sa",""); } catch (SQLException e) { // TODO 自动生成 catch 块 e.printStackTrace(); } } }

回答3:

Class.forName("驱动的类名") ; 会执行驱动类中的static语句块,注册驱动 Connection conn=DriverManager.getConnection("数据库url","用户名","密码"); conn.setAutoCommit(false);开启事务,设置自动提交为false; PrepareStatement stmt=conn.prepareStatement(String sql) ;//获得PrepareStatement对象 ResultSet rs=stmt.executeQuery();//获得结果集 记住抓异常 rs.close;//关闭结果集 conn.close;//关闭连接

回答4:

JAVA的数据库连接每种数据库都有不同的加载驱动,通过Class.foName("加载字符串加载");通过DriverManager.getConnection("")来获取连接的,不管什么样的数据库都少不了这两部的!