Spring4学习笔记-SpringJDBC基本操作(补充)

湘潭项目使用Spring+CXF编写服务器端,JDBC操作全部由Spring完成,下面记录其中一个典型的实例。

public class Userinfo_lvDaoImpl implements Userinfo_lvDao {

        //通过注解注入获得jdbcTemplate对象
	@Autowired
	private JdbcTemplate jdbcTemplate;

	/**
	 * 根据name和password来查询用户。返回查询到的Userinfo_lv对象
	 */
	@Override
	public Userinfo_lv userinfo_lv_get(String name, String password) {
		String sql = "select * from Userinfo_lv where name = ? and password = ?";
		RowMapper<Userinfo_lv> rowMapper = new BeanPropertyRowMapper<Userinfo_lv>(
				Userinfo_lv.class);
		try {
			return jdbcTemplate.queryForObject(sql, rowMapper, name, password);
		} catch (Exception e) {
			return null;
		}
	}

	/**
	 * 添加用户。返回被成功添加的Userinfo_lv对象
	 */
	@Override
	public Userinfo_lv user_add(String name, String password, int role,
			int groupid) {
		String sql = "insert into Userinfo_lv (name, password, role ) values (?, ?, ?)";
		int update = jdbcTemplate.update(sql, name, password, role);
		if (update > 0) {// 添加成功
			return userinfo_lv_get(name, password);// 返回添加成功的对象
		}
		return null;
	}

	/**
	 * 通过id查询用户。返回查询到的Userinfo_lv对象。
	 */
	@Override
	public Userinfo_lv getUserinfo_lv(int id) {
		String sql = "select * from Userinfo_lv where id = ?";
		RowMapper<Userinfo_lv> rowMapper = new BeanPropertyRowMapper<Userinfo_lv>(
				Userinfo_lv.class);
		try {
			return jdbcTemplate.queryForObject(sql, rowMapper, id);
		} catch (Exception e) {
			return null;
		}
	}

	/**
	 * 通过用户名查询用户。返回查询到的Userinfo_lv对象。
	 */
	@Override
	public Userinfo_lv getUserinfo_lv(String name) {
		String sql = "select * from Userinfo_lv where name = ?";
		RowMapper<Userinfo_lv> rowMapper = new BeanPropertyRowMapper<Userinfo_lv>(
				Userinfo_lv.class);
		try {
			return jdbcTemplate.queryForObject(sql, rowMapper, name);
		} catch (Exception e) {
			return null;
		}
	}

	/**
	 * 通过role查询用户。
	 */
	@Override
	public List<Userinfo_lv> getUserinfo_lvsByRole(int role) {
		String sql = "select * from Userinfo_lv where role = ?";
		List<Userinfo_lv> Userinfo_lvs = jdbcTemplate.query(sql, new RowMapperResultSetExtractor(new Userinfo_lvRowMapper()), role);
		return Userinfo_lvs;
	}

	/**
	 * 通过groupid查询用户
	 */
	@Override
	public List<Userinfo_lv> getUserinfo_lvsByGroupid(int groupid) {
		String sql = "select * from Userinfo_lv where groupid = ?";
		List<Userinfo_lv> Userinfo_lvs = jdbcTemplate.query(sql, new RowMapperResultSetExtractor(new Userinfo_lvRowMapper()), groupid);
		return Userinfo_lvs;
	}

	private class Userinfo_lvRowMapper implements RowMapper{
		@Override
		public Object mapRow(ResultSet rs, int index) throws SQLException {
			Userinfo_lv userinfo_lv = new Userinfo_lv();
			userinfo_lv.setGroupid(rs.getInt("groupid"));
			userinfo_lv.setId(rs.getInt("id"));
			userinfo_lv.setName(rs.getString("name"));
			userinfo_lv.setPassword(rs.getString("password"));
			userinfo_lv.setRole(rs.getInt("role"));
			return userinfo_lv;
		}
	}

	/**
	 * 根据id删除用户
	 * 若删除成功,返回被删除的Userinfo_lv对象。否则返回null
	 */
	@Override
	public Userinfo_lv user_delete(int id) {
		String sql = "delete from Userinfo_lv where id = ?";
		int update = jdbcTemplate.update(sql, id);
		if (update > 0) {//删除成功
			return getUserinfo_lv(id);// 返回删除成功的对象
		}
		return null;
	}

}

方法的命名待规范。

时间: 2024-10-02 17:22:44

Spring4学习笔记-SpringJDBC基本操作(补充)的相关文章

简单的玩玩etimer &lt;contiki学习笔记之九 补充&gt;

这幅图片是对前面  <<contiki学习笔记之九>>  的一个补充说明. 简单的玩玩etimer <contiki学习笔记之九> 或许,自己正在掀开contiki process最后的一层面纱: 或许,还有一段路要走: 或许,已经掀开... --------------- 一切,都只是process:只有有了process,才会轮到etimer_process  发言,除非,抛却一切机制,裸机实现etimer... process,是什么? 一个链表,还是单向的,仅此

Python学习笔记6-python函数补充、装饰器、模块

本文主要学习内容有 函数知识的补充 装饰器(无参.有参.非固定参数.有返回值) 函数知识的补充 稍后待续...

MySQL学习笔记—数据库基本操作

1.创建数据库 CREATE {DATABASE | SEHEMA} [IF NOT EXISTS] db_name [[DEFAULT]] CHARACTER SER [=] charset_name {}中是2选一 []中是可选可不选 创建text1数据库目录 CREATE DATABASE text1; 创建text1数据库目录 CREATE DATABASE IF NOT EXISTS text1;  数据库存在时加上IF NOT EXISTS会隐藏错误信息 查看隐藏的错误信息 SHOW

Tensorflow学习笔记---1--Python基本操作

1. 代码中常见的__future__的作用: 由于Python是由社区推动的开源并且免费的开发语言,不受商业公司控制,因此,Python的改进往往比较激进,不兼容的情况时有发生.Python为了确保你能顺利过渡到新版本,特别提供了__future__模块,让你在旧的版本中试验新版本的一些特性.例如,在Python 2.x中,对于除法有两种情况,如果是整数相除,结果仍是整数,余数会被扔掉,这种除法叫"地板除": >>> 10 / 3 3 要做精确除法,必须把其中一个数

Arduino学习笔记A6(补充) - 在串口读取多个字符串,并且转换为数字数组

功能如题目. 在串口收到逗号分割的6串数字比如 100,200,45,4,87,99 然后在6个PWM端口3, 5, 6, 9, 10, 11输出对应PWM值 代码注释很详细了,就不再说明了. ARDUINO 代码复制打印 //定义一个comdata字符串变量,赋初值为空值 String comdata = ""; //numdata是分拆之后的数字数组 int numdata[6] = {0}, PWMPin[6] = {3, 5, 6, 9, 10, 11}, mark = 0;

python学习笔记-文件基本操作(二)

在上一篇文章中,简单介绍了打开文件的方法以及关于读.写.追加的操作,点击此处查看. 在此篇文章中,继续介绍另外一种打开文件的方法和几种同时读写的模式. 一.打开文件方法:with 使用file()或open()打开文件时,最后一定要使用close()方法来关闭文件,为了避免忘记使用,还使用使用with的方法开打开文件,代码如: with open ('文件名','模式') as f: ... 其中,f为文件句柄,该打开文件的方式等同于f=open('文件名','模式') 此方法也可以一次打开多个

Spring4学习笔记-AOP(基于配置文件的方式)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://shamrock.blog.51cto.com/2079212/1557743 引入的jar包与基于注解的方式引入的jar包相同 ArithmeticCalculator接口 1 2 3 4 5 6 7 8 9 10 11 package com.spring.aop.impl.xml; public interface ArithmeticCalculator {     pu

Spring4学习笔记2-配置集合属性

1 可使用<list> <map> <set>等来配置集合属性 2 List <!-- 配置List属性 --> <bean id="person3" class="com.kejian.spring.bean.collectionbean.PersonForList"> <property name="name" value="Peter"></p

Spring4学习笔记-通过注解配置bean

通过注解配置Bean TestObject.java package com.spring.beans.annotation; import org.springframework.stereotype.Component;; @Component public class TestObject { } UserController.java package com.spring.beans.annotation.controller; import org.springframework.st