JDBC连接各个数据库的className与url
JDBC连接DB2
private String className="com.ibm.db2.jdbc.net.DB2Driver";
private String url="jdbc:db2://localhost:8080/lwc";
JDBC连接Microsoft SQLServer(microsoft)
private String className="com.microsoft.jdbc.sqlserver.SQLServerDriver";
private String url="jdbc:microsoft:sqlserver://
localhost:1433;SelectMethod=Cursor;dataBaseName=lwc";
JDBC连接Sybase(jconn2.jar)
private String className="com.sybase.jdbc2.jdbc.SybDriver";
private String url="jdbc:sybase:Tds:localhost:2638";
JDBC连接MySQL(mm.mysql-3.0.2-bin.jar)
private String className="org.gjt.mm.mysql.Driver";
private String url="jdbc:mysql://localhost:3306/lwc";
JDBC连接PostgreSQL(pgjdbc2.jar)
private String className="org.postgresql.Driver";
private String url="jdbc:postgresql://localhost/lwc";
JDBC连接Oracle(classes12.jar)
private String className="oracle.jdbc.driver.OracleDriver";
private String url="jdbc:oracle:thin:@localhost:1521:lwc";
JDBC连接数据库案例
package com.itlwc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBConnection {
private static Connection conn = null;
private String user = "";
private String password = "";
private String className = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
private String url = "jdbc:microsoft:sqlserver://"
+ "localhost:1433;SelectMethod=Cursor;dataBaseName=lwc";
private DBConnection() {
try {
Class.forName(this.className);
conn = DriverManager.getConnection(url, user, password);
System.out.println("连接数据库成功");
} catch (ClassNotFoundException e) {
System.out.println("连接数据库失败");
} catch (SQLException e) {
System.out.println("连接数据库失败");
}
}
public static Connection getConn() {
if (conn == null) {
conn = (Connection) new DBConnection();
}
return conn;
}
// 关闭数据库
public static void close(ResultSet rs, Statement state, Connection conn) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
rs = null;
}
if (state != null) {
try {
state.close();
} catch (SQLException e) {
e.printStackTrace();
}
state = null;
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn = null;
}
}
// 测试数据库连接是否成功
public static void main(String[] args) {
getConn();
}
}
基本CURD
获取数据库连接请查考JDBC连接常用数据库
private Connection conn = DBConnection.getConn();
增加方法
使用拼sql增加
public void add1(Student student) {
String sql = "insert into student values(" + student.getId() + ",'"
+ student.getCode() + "','" + student.getName() + "',"
+ student.getSex() + "," + student.getAge() + ")";
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
DBConnection.close(null, ps, conn);
}
使用替换变量增加
public void add2(Student student) {
String sql = "insert into student values(?,?,?,?,?)";
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql);
ps.setString(1, student.getCode());
ps.setString(2, student.getName());
ps.setString(3, student.getSex());
ps.setString(4, student.getAge());
ps.setString(5, student.getId());
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
DBConnection.close(null, ps, conn);
}
删除方法
使用拼sql删除
public void delete1(String id) {
String sql = "delete from student where id='" + id+"'";
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
DBConnection.close(null, ps, conn);
}
使用替换变量删除
public void delete2(String id) {
String sql = "delete from student where id=?";
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql);
ps.setString(1, id);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
DBConnection.close(null, ps, conn);
}
修改方法
使用拼sql修改
public void update1(Student student) {
String sql = "update student set code='" + student.getCode()
+ "',name='" + student.getName() + "',sex=" + student.getSex()
+ ",age=" + student.getAge() + " where id=" + student.getId();
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
DBConnection.close(null, ps, conn);
}
使用替换变量修改
public void update2(Student student) {
String sql = "update student set code=?,name=?,sex=?,age=? where id=?";
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql);
ps.setString(1, student.getCode());
ps.setString(2, student.getName());
ps.setString(3, student.getSex());
ps.setString(4, student.getAge());
ps.setString(5, student.getId());
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
DBConnection.close(null, ps, conn);
}
查询方法
查询得到一个对象
public Student findById(int id) {
String sql = "select * from student where id=" + id;
Student student = new Student();
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
if (rs.next()) {
student.setId(rs.getString(1));
student.setCode(rs.getString(2));
student.setName(rs.getString(3));
student.setSex(rs.getString(4));
student.setAge(rs.getString(5));
}
} catch (SQLException e) {
e.printStackTrace();
}
DBConnection.close(rs, ps, conn);
return student;
}
查询得到一组数据
@SuppressWarnings("unchecked")
public List find() {
String sql = "select * from student";
List list = new ArrayList();
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
Student student = new Student();
student.setId(rs.getString(1));
student.setCode(rs.getString(2));
student.setName(rs.getString(3));
student.setSex(rs.getString(4));
student.setAge(rs.getString(5));
list.add(student);
}
} catch (SQLException e) {
e.printStackTrace();
}
DBConnection.close(rs, ps, conn);
return list;
}
统计数据库总条数
public int getRows() {
int totalRows = 0;
String sql = "select count(*) as totalRows from student";
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
if (rs.next()) {
totalRows = Integer.valueOf(rs.getString("totalRows"));
}
} catch (SQLException e) {
e.printStackTrace();
}
DBConnection.close(rs, ps, conn);
return totalRows;
}
执行存储过程
第一种
public String retrieveId(String tableName,String interval) throws SQLException {
Connection conn = DBConnection.getConn();
String sql = "exec p_xt_idbuilder '" + tableName + "','" + interval+ "'";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
String maxId = "";
if(rs.next()){
maxId = rs.getString("bh");
}
DBConnection.close(rs, ps, conn);
return maxId;
}
第二种
public String retrieveId(String tableName,String interval) throws SQLException {
Connection conn = DBConnection.getConn();
CallableStatement cs = conn.prepareCall("{call p_xt_idbuilder(?,?,?)}");
cs.setString(1, tableName);
cs.setString(2, interval);
cs.registerOutParameter(3,java.sql.Types.VARCHAR);
cs.executeUpdate();
String maxId = "";
maxId=cs.getString(3);
DBConnection.close(null, cs, conn);
return maxId;
}