使用回调函数来实现jdbc操作数据库数据
来源:互联网 发布:淘宝下单未付款 排名 编辑:程序博客网 时间:2024/06/05 04:42
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
* jdbc4 不用加载驱动 及不用Class.forName(""); 看 驱动jar下面META-INF下有没有services/java.sql.Driver文件 纯在这不用加载
*
* @author lilin
*
*/
public class DButils {
/**
* 获取连接
* @return
*/
public static Connection getcon() {
try {
return DriverManager.getConnection("jdbc:mysql://localhost:3306/testdbs","root","123456");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
package com.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* 回调基类
* @author lilin
*
* @param <T>
*/
public interface IHandler<T> {
public T getTinfo( ResultSet rs ) throws SQLException;
public int updateTinfo( int rs ) throws SQLException;
}
package com.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.tools.DButils;
/**
* 数据库操作基类
* @author lilin
*
*/
public class BaseDao {
/**
* 查询。。。。。
* @param sql
* @param ihander
* @param params
* @return
* @throws SQLException
*/
public <T>T getTinfo(String sql,IHandler<T> ihander,Object...params) throws SQLException{
Connection con = DButils.getcon();
if( null!=con){
PreparedStatement ps = con.prepareStatement(sql);
for(int i= 0,num =params.length ; i <num ; i++ ){
ps.setObject( i+1 , params[i] );
}
ResultSet rs=ps.executeQuery();
T t= ihander.getTinfo(rs);
if(null != rs){rs.close();}
if(null != ps){ps.close();}
if(null != con){con.close();}
return t;
}else{
return null;
}
}
/**
* 修改
* @param sql
* @param ihander
* @param params
* @return
* @throws SQLException
*/
public int updateTinfo(String sql,@SuppressWarnings("rawtypes") IHandler ihander,Object...params) throws SQLException{
Connection con = DButils.getcon();
if(null!=con){
PreparedStatement ps = con.prepareStatement(sql);
for(int i= 0,num =params.length ; i <num ; i++ ){
ps.setObject( i+1 , params[i] );
}
int num=ps.executeUpdate();
int t= ihander.updateTinfo(num);
if(null != ps){ps.close();}
if(null != con){con.close();}
return t;
}else{
return 0;
}
}
}
===============
实体
package com.entity;
public class Userinfo {
private Integer userid;
private String username;
public Integer getUserid() {
return userid;
}
public void setUserid(Integer userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
===============
测试和实现类
package com.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.entity.Userinfo;
public class UserinfoDao {
/**
* 查询全部信息
* @param sql
* @return
* @throws SQLException
*/
public List<Userinfo> getuserinfo(String sql) throws SQLException{
BaseDao b= new BaseDao ();
return b.getTinfo(sql, new IHandler<List<Userinfo>>() {
@Override
public List<Userinfo> getTinfo(ResultSet rs) throws SQLException {
List<Userinfo> list= new ArrayList<Userinfo>();
Userinfo userinfo = null;
while(rs.next()){
userinfo = new Userinfo();
userinfo.setUserid(rs.getInt("userid"));
userinfo.setUsername(rs.getString("username"));
list.add(userinfo);
}
return list;
}
@Override
public int updateTinfo(int rs) throws SQLException {
return 0;
}
});
}
/**
* 查询单个 不带参数
* @param sql
* @return
* @throws SQLException
*/
public Userinfo getoneuserinfo(String sql) throws SQLException{
BaseDao b= new BaseDao ();
return b.getTinfo(sql, new IHandler<Userinfo>() {
@Override
public Userinfo getTinfo(ResultSet rs) throws SQLException {
Userinfo userinfo = null;
while(rs.next()){
userinfo = new Userinfo();
userinfo.setUserid(rs.getInt("userid"));
userinfo.setUsername(rs.getString("username"));
}
return userinfo;
}
@Override
public int updateTinfo(int rs) throws SQLException {
return 0;
}
} );
}
/**
* 查询单个 带参数
* @param sql
* @param params
* @return
* @throws SQLException
*/
public Userinfo getoneuserinfobyid(String sql, Object...params) throws SQLException{
BaseDao b= new BaseDao ();
return b.getTinfo(sql, new IHandler<Userinfo>() {
@Override
public Userinfo getTinfo(ResultSet rs) throws SQLException {
Userinfo userinfo = null;
while(rs.next()){
userinfo = new Userinfo();
userinfo.setUserid(rs.getInt("userid"));
userinfo.setUsername(rs.getString("username"));
}
return userinfo;
}
@Override
public int updateTinfo(int rs) throws SQLException {
return 0;
}
},params );
}
/**
* 修改 删除 添加
* @param sql
* @param params
* @return
* @throws SQLException
*/
public int updateuserinfo( String sql, Object...params ) throws SQLException {
BaseDao b= new BaseDao ();
return b.updateTinfo(sql, new IHandler<Userinfo>() {
@Override
public Userinfo getTinfo(ResultSet rs) throws SQLException {
// TODO Auto-generated method stub
return null;
}
@Override
public int updateTinfo(int rs) throws SQLException {
return rs;
}
}, params);
}
public static void main(String[] args) throws SQLException {
System.out.println("测试。。。");
UserinfoDao udao =new UserinfoDao();
List<Userinfo> list= udao.getuserinfo("select * from lilin_userinfo");
for( int num = list.size() -1,i = num ;i >= 0;i-- ){
Userinfo u = list.get(i);
System.out.print(u.getUserid()+"=======");
System.out.print( u.getUsername() );
System.out.println();
}
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
Userinfo u=udao.getoneuserinfo("select * from lilin_userinfo where userid= 1");
System.out.print(u.getUserid()+"=======");
System.out.print( u.getUsername() );
System.out.println();
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
Userinfo us=udao.getoneuserinfobyid("select * from lilin_userinfo where userid= ? ",8);
System.out.print(us.getUserid()+"=======");
System.out.print( us.getUsername() );
System.out.println();
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
int a= udao.updateuserinfo("insert into lilin_userinfo(username,pid) values(?,?)", "张三x",2);
System.out.println("受影响的行数:"+a);
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
int b = udao.updateuserinfo("update lilin_userinfo set username=? where userid = ?", "张三1",9);
System.out.println("受影响的行数:"+b);
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
int c = udao.updateuserinfo("delete from lilin_userinfo where userid = ?",10);
System.out.println("受影响的行数:"+c);
}
}
- 使用回调函数来实现jdbc操作数据库数据
- 使用元数据来优化JDBC对数据库的CURD操作
- 通过接口(interface)来实现定义回调函数
- 使用回调函数,来确定js函数执行顺序
- 回调函数实现
- 利用回调函数实现一个计算器,实现加减乘除操作
- option stateSaveParams 状态数据保存操作回调函数
- 使用回调函数
- 回调函数使用
- 使用jUnit和JDBC来读取数据库中的数据
- libcur设置接收数据的回调函数以及回调函数的使用
- MATLAB GUI ,2,使用MATLAB的函数来实现MATLAB GUI,part 2,eval和回调函数
- flex父子页面数据交互实现(回调函数)
- flex4 父子页面数据交互实现(回调函数)
- 使用JDBC操作数据库
- 使用JDBC操作数据库
- AJax的使用json数据的传输回调函数
- 不用回调函数来捕捉数据包
- 使用Opencv编程
- build path,no action aviliable
- 安装oracle 10g遇到cannot open shared object file这个错误以及解决方法
- 【Linux】ubuntu修改主机名
- 函数调用约定
- 使用回调函数来实现jdbc操作数据库数据
- mysql如果有数据就更新,没有数据就插入的方法
- Mac osx ffmpeg aac
- 第六周 项目四:三角形类(判断是不是等腰或直角)
- 【实践】Web编程所需的必要知识、环境工具相关
- C++中this指针的理解和用法
- Mac,iOS界面中的三维坐标系
- 自说动态内存分配与释放
- c语言注意情况