先道要加上两个包:Spring2.5下面的: spring.jar和commons-logging.jar
具体的实例说明:
public class StuDaoImple implements StuDaointer {
private JdbcTemplate jdbctemp = null;
public StuDaoImple() {
jdbctemp = new JdbcTemplate(SQLConnUtil.getDataSource());
}
// 所有添,删,改的方法都可以用jdbctemp.update();方法
public void addStu(Stu stu) {
String sql = "insert into stu values(?,?,?)";
Object[] obj = new Object[] { stu.getSname(), stu.getSsex(),new java.sql.Date(stu.getSbrith().getTime()) };
jdbctemp.update(sql, obj);// 可以传两个参数,第一个参数是SQL语句,第二个参数是SQL语句的参数值
}
public void delStu(int sid) {
String sql = "delete stu where s_id=" + sid;
jdbctemp.update(sql);// 可以传一个参数,就是没有参数的SQL语句
}
public void updStu(Stu stu) {
String sql = "update stu set s_name=?,s_sex=?,s_brith=? where s_id=?";
Object[] obj = new Object[] { stu.getSname(), stu.getSsex(),new java.sql.Date(stu.getSbrith().getTime()), stu.getSid() };
jdbctemp.update(sql, obj, new int[] { Types.VARCHAR, Types.VARCHAR,Types.DATE, Types.INTEGER });
// 可以传两个参数,第一个参数是SQL语句,第二个参数是SQL语句的参数值,第三个参数是SQL语句参数值的SQL类型
}
//查询1
public List getAllStu() {
String sql="select s_id,s_name,s_sex,s_brith from stu";
List list=jdbctemp.query(sql, new RowMapper(){
public Object mapRow(ResultSet arg0, int arg1) throws SQLException {
Stu stu=new Stu();
if(arg0!=null){
stu.setSid(arg0.getInt("s_id"));
stu.setSname(arg0.getString("s_name"));
stu.setSsex(arg0.getString("s_sex"));
stu.setSbrith(arg0.getDate("s_brith"));
}
return stu;
}
});
return list;
}
//查询2
public List getAllStu(int id) {
String sql="select s_id,s_name,s_sex,s_brith from stu where s_id<?";
Object[] obj=new Object[]{id};
//使用内部类
List list=jdbctemp.query(sql,obj,new RowMapper(){
public Object mapRow(ResultSet arg0, int arg1) throws SQLException {
Stu stu=new Stu();
if(arg0!=null){
stu.setSid(arg0.getInt("s_id"));
stu.setSname(arg0.getString("s_name"));
stu.setSsex(arg0.getString("s_sex"));
stu.setSbrith(arg0.getDate("s_brith"));
}
return stu;
}
});
return null;
}
//查询方式3(查询一个对象)
public Stu getOneStu(int id) {
String sql="select s_id as sid,s_name as sname,s_sex as ssex,s_brith as sbrith from stu where s_id=?";
Object[] obj=new Object[]{id};
Object stu=jdbctemp.queryForObject(sql, obj,new BeanPropertyRowMapper(Stu.class));
//可以不用内部类,但是类的属性字段名称要数据库中的字段名称一样或者数据库字段名为s_id类的名称为SId,
//如果你没有遵守这个规范则可以在select语句后面给数据库字段名取别名
//上面的查询也可以这种方式
return (Stu)stu;
}
//查询方式4(查询一个字段)
public String getStuName(int sid) {
String sql="select s_name as sname from stu where s_id=?";
Object[] obj=new Object[]{sid};
Object stuname=jdbctemp.queryForObject(sql, obj, String.class);
//String.class即是指明一下结果的类型
return (String) stuname;
}
//查询方法5
public int count(){
String sql="select count(*) from stu";
int m=jdbctemp.queryForInt(sql);
return m;
}
//查询方法6 查询结果返回的是map,map中的key为select中的列名(若有别名是是别名)value是该列所对应的值
public Map getStuinMap(int sid){
String sql="select s_id as sid,s_name as sname,s_sex as ssex,s_brith as sbrith from stu where s_id=?";
Object[] obj=new Object[]{sid};
return jdbctemp.queryForMap(sql, obj);
}
//查询方法7 若你不想用spring封装好了的操作,你可以自己写.Connection的打开和关闭它已经写好了,其它的操作自己可以去完成
public int getMyQuery(final Stu stu){
Object obj=jdbctemp.execute(new ConnectionCallback(){
public Object doInConnection(Connection conn) throws SQLException, DataAccessException {
String sql="insert into stu values(?,?,?)";
PreparedStatement pre=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);//返回主键自动
pre.setString(1, stu.getSname());
pre.setString(2, stu.getSsex());
pre.setDate(3, new java.sql.Date(stu.getSbrith().getTime()));
pre.executeUpdate();
ResultSet rs=pre.getGeneratedKeys();
int m=0;
if(rs.next()){
m=rs.getInt(1);
}
return m;
}
});
return (Integer)obj;
}
}
分享到:
相关推荐
运用Spring中关于JDBC的一个辅助类(JDBC Template),进行curd操作
主要给大家介绍了关于JdbcTemplate方法与增删改查操作实现的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用JdbcTemplate具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
JdbcTemplate使用就是JdbcTemplate的使用 再说两遍JdbcTemplate使用就JdbcTemplate的使用 20字够了
jdbcTemplate分页彻底解决,使用游标滚动jdbcTemplate分页彻底解决,使用游标滚动
使用Spring的JdbcTemplate实现分页功能
简单介绍如何使用Spring Boot使用JdbcTemplate与MySQL进行数据库操作
任务1使用springmvc+JdbcTemplate完成增删查改.md
本资源是一个完整的通过Servlet-Service-Dao-JdbcTemplate访问MySQL数据库的JavaWeb Project,可以直接导入到MyEclipse中进行调试运行,注意默认编译器是JDK1.6。
Spring框架中jdbcTemplate 的使用
配制Spring事务和JdbcTemplate使用 配制Spring事务和JdbcTemplate使用
使用Spring的JdbcTemplate调用Oracle的存储过程
strut2+spring+springjdbctemplate做的简易登录系统
JdbcTemplate是spring-jdbc提供的数据库核心操作类,那对JdbcTemplate进行事务控制呢?
很基础的spring JDBCtemplate 的使用,包括不使用JDBCtemplate 和使用JDBCtemplate两种方法对比。
spring JdbcTemplate query方法使用示例,欢迎下载借鉴
JdbcTemplate 调用存储过程
SpringMVC+jdbcTemplate+easyUI+ztree(增删改查)
SSH笔记-Spring JdbcTemplate,使用JdbcTemplate对数据库进行操作,使用具名参数和JDBC模板,简化操作
简单的jdbcTemplate预编译、回调等