用JDBC实现CRUD方法
然后在SERVLET/JSP中调用相应的方法就可以实现CRUD(增删改查)了
不过现代编程方法一般都会编DAO(数据访问对象)来封装对数据库的 *** 作
然后编写SERVICE(业务内)来封装业务,并实现事务控制
最后在SERVLET/JSP/STRUTS ACTION中调用SERVICE
这样可以达到松藕合的目的,便于修改、调试、二次开发、功能扩展
其实在JSP页面中也可以直接调用JDBC,不过一般没人会这样用。
Java程序向数据库中插入数据,代码如下:
//首先创建数据库,(access,oracle,mysql,sqlsever)其中之一,其中access,sqlsever需要配置数据源(odbc)//然后再eclipse中创建类(ConnDb,Test,TestBean)ConnDb功能为连接数据库,查询,插入,删除,修改数据的类,Test为含有main方法的测试类,TestBean为数据表中的字段属性及set,get方法
//以下是ConnDb代码:
package db
import java.sql.Connection
import java.sql.DriverManager
import
java.sql.ResultSet
import java.sql.SQLException
import
java.sql.Statement
import java.util.ArrayList
public class ConnDb {
public Connection startConn(Connection conn){
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
conn = DriverManager.getConnection("jdbc:odbc:数据库","用户名", "密码")
} catch (Exception e) {
System.out.println("连接数据库时出现错误")
}
return conn
}
public ArrayList executeQuery(String sql){
Connection conn = null
Statement stmt = null
ResultSet rs = null
ArrayList list = new ArrayList()
try {
conn = startConn(conn)
stmt = conn.createStatement()
rs = stmt.executeQuery(sql)//sql为sql语句例如"select * from
表名",从main方法中传进来,这里用的是ArrayList 类将查询结果存储起来
while(rs.next()){
TestBean tb = new TestBean()
tb.setTid(rs.getString("tid"))
tb.setTname(rs.getString("tname"))
tb.setTinfo(rs.getString("tinfo"))
list.add(tb)
}
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}finally{
closeConn(rs,stmt,conn)
}
return list
}
public void executeUpdate(String sql){
Connection conn = null
Statement stmt = null
try {
conn =
startConn(conn)
stmt = conn.createStatement()
stmt.executeUpdate(sql)
}
catch (SQLException e) {
System.out.println("修改,插入或者删除数据库数据时发生错误!")
}finally{
closeConn(stmt,conn)
}
}
public void closeConn(ResultSet rs,Statement stmt,Connection conn){
try {
if(rs !=
null){
rs.close()
}
if(stmt != null){
stmt.close()
}
if(conn != null){
conn.close()
}
}
catch (SQLException e) {
// TODO Auto-generated catch
block
System.out.println("关闭数据库的时候发生错误!")
}
}
public void closeConn(Statement stmt,Connection conn){
try {
if(stmt != null){
stmt.close()
}
if(conn != null){
conn.close()
}
}
catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("关闭数据库的时候发生错误!")
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)