23we
- package com.test.dao;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import org.apache.tomcat.jdbc.pool.DataSource;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- public abstract class AbstractBaseDataSourceDao {
- private static final Logger LOGGER=LoggerFactory.getLogger("AbstractBaseDataSourceDao");
- protected Connection conn=null;
- protected PreparedStatement ps=null;
- protected ResultSet rst=null;
- @Autowired
- protected DataSource dataSource;
- /**
- * 设置dataSource
- */
- public void setDataSource(DataSource dataSource) {
- this.dataSource = dataSource;
- try {
- conn=dataSource.getConnection();
- } catch (SQLException e) {
- LOGGER.error("数据库连接异常:", e.getMessage());
- }
- }
- }
- package com.test.dao;
- import java.util.List;
- import org.springframework.transaction.annotation.Transactional;
- import com.test.model.User;
- public interface IUserDao {
- @Transactional
- public boolean add(User user);
- public boolean add(List<User> lists);
- public boolean update(User user);
- public boolean delete(int id);
- public void delete(List<Integer> lists);
- public User findById(int id);
- public User findByName(String name);
- public List<User> findAllUser();
- }
- package com.test.dao.imp;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.List;
- import org.apache.tomcat.jdbc.pool.DataSource;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.dao.DataAccessException;
- import org.springframework.data.redis.connection.RedisConnection;
- import org.springframework.data.redis.core.RedisCallback;
- import org.springframework.data.redis.serializer.RedisSerializer;
- import com.test.dao.AbstractBaseDataSourceDao;
- import com.test.dao.IUserDao;
- import com.test.model.User;
- public class UserDao extends AbstractBaseDataSourceDao implements IUserDao {
- private static final Logger LOGGER = LoggerFactory.getLogger("UserDao");
- public int executeUpdate(String sql, Object[] args) {
- try {
- ps = conn.prepareStatement(sql);
- if (args != null && args.length > 0) {
- for (int i = 0; i < args.length; i++) {
- ps.setObject(i + 1, args[i]);
- }
- }
- int rows = ps.executeUpdate();
- if (rows > 0) {
- conn.commit();
- return rows;
- }
- } catch (SQLException e) {
- LOGGER.error("执行增删改sql异常:", e.getMessage());
- }
- return 0;
- }
- public ResultSet executeQuery(String sql, Object[] args) {
- try {
- ps = conn.prepareStatement(sql);
- if (args != null && args.length > 0) {
- for (int i = 0; i < args.length; i++) {
- ps.setObject(i + 1, args[i]);
- }
- }
- rst = ps.executeQuery();
- } catch (SQLException e) {
- LOGGER.error("执行查询sql异常:", e.getMessage());
- }
- return rst;
- }
- public void closeAll(Connection conn, PreparedStatement ps, ResultSet rst) {
- try {
- if (rst != null) {
- rst.close();
- }
- if (ps != null) {
- ps.close();
- }
- if (conn != null) {
- conn.close();
- }
- } catch (SQLException e) {
- LOGGER.error("关闭数据库连接异常:", e.getMessage());
- }
- }
- @Override
- public boolean add(final User user) {
- String sql = "insert into users(uname, upasswd) values(?,?);";
- String[] args = new String[] { user.getUname(), user.getUpasswd() };
- int row = executeUpdate(sql, args);
- if (row <= 0) {
- LOGGER.error("数据行不存在, 用户 = " + user.getUname());
- return false;
- } else {
- return true;
- }
- }
- @Override
- public boolean add(final List<User> lists) {
- // TODO Auto-generated method stub
- return false;
- }
- @Override
- public boolean update(final User user) {
- // TODO Auto-generated method stub
- return false;
- }
- @Override
- public boolean delete(int id) {
- // TODO Auto-generated method stub
- return false;
- }
- @Override
- public void delete(final List<Integer> lists) {
- // TODO Auto-generated method stub
- }
- @Override
- public User findById(int id) {
- // TODO Auto-generated method stub
- return null;
- }
- @Override
- public User findByName(final String name) {
- // TODO Auto-generated method stub
- return null;
- }
- @Override
- public List<User> findAllUser() {
- // TODO Auto-generated method stub
- return null;
- }
- }
- package RedisTest;
- import java.util.ArrayList;
- import java.util.List;
- import junit.framework.Assert;
- import org.junit.Test;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.test.context.ContextConfiguration;
- import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
- import com.test.dao.IUserDao;
- import com.test.model.User;
- /**
- * 测试
- */
- @ContextConfiguration(locations = {"classpath:config/applicationContext.xml"})
- public class RedisTest extends AbstractJUnit4SpringContextTests {
- @Autowired
- private IUserDao userDao;
- /**
- * 新增
- */
- @Test
- public void testAddUser() {
- User user = new User();
- user.setUname("user1");
- user.setUpasswd("java2000_wl1");
- boolean result = userDao.add(user);
- Assert.assertTrue(result);
- }
- /**
- * 批量新增 普通方式
- */
- @Test
- public void testAddUsers1() {
- List<User> list = new ArrayList<User>();
- for (int i = 10; i < 50000; i++) {
- User user = new User();
- user.setUname("user"+ i);
- user.setUpasswd("java2000_wl"+ i);
- list.add(user);
- }
- long begin = System.currentTimeMillis();
- for (User user : list) {
- userDao.add(user);
- }
- System.out.println(System.currentTimeMillis() - begin);
- }
- /**
- * 批量新增 pipeline方式
- */
- @Test
- public void testAddUsers2() {
- List<User> list = new ArrayList<User>();
- for (int i = 50000; i < 100000; i++) {
- User user = new User();
- user.setUname("user"+ i);
- user.setUpasswd("java2000_wl"+ i);
- list.add(user);
- }
- long begin = System.currentTimeMillis();
- boolean result = userDao.add(list);
- System.out.println(System.currentTimeMillis() - begin);
- Assert.assertTrue(result);
- }
- /**
- * 修改
- */
- @Test
- public void testUpdate() {
- User user = new User();
- user.setUname("user1");
- user.setUpasswd("new_password");
- boolean result = userDao.update(user);
- Assert.assertTrue(result);
- }
- /**
- * 获取
- */
- @Test
- public void testGetUserId() {
- int id = 4;
- User user = userDao.findById(id);
- Assert.assertNotNull(user);
- Assert.assertEquals(user.getUname(), "java2000_wl1");
- }
- /**
- * 获取
- */
- @Test
- public void testGetUserName() {
- String id = "user1";
- User user = userDao.findByName(id);
- Assert.assertNotNull(user);
- Assert.assertEquals(user.getUname(), "java2000_wl1");
- }
- /**
- * 通过key删除单个
- */
- @Test
- public void testDelete() {
- int key = 4;
- userDao.delete(key);
- }
- /**
- * 批量删除
- */
- @Test
- public void testDeletes() {
- List<Integer> list = new ArrayList<Integer>();
- for (int i = 0; i < 100000; i++) {
- list.add(i);
- }
- userDao.delete(list);
- }
- /**
- * 设置userDao
- * @param userDao the userDao to set
- */
- public void setUserDao(IUserDao userDao) {
- this.userDao = userDao;
- }
- }
23we的更多相关文章
- Mysql 用户 创建与删除(基础1)
Mysql是最流行的关系型数据库管理系统之一,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个 ...
随机推荐
- xcdatamodel的实质
修改后缀名为zip或者其它,可以查看到xcdatamodel是一个描述文件 <?xml version="1.0" encoding="UTF-8" st ...
- [大坑]Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
报错tensorflow/stream_executor/cuda/cuda_dnn.cc:338] Could not create cudnn handle: CUDNN_STATUS_INTER ...
- 如何从Ubuntu 16.04 LTS升级到Ubuntu 18.04 LTS
可以说非常简单(假设过程顺利!!) 您只需打开Software&Update,进入"Updates"选项卡,然后从“有新版本时通知我”下拉菜单中选择“适用长期支持版”选项. ...
- 实验十二 团队作业8:软件测试与Alpha冲刺
实验十二 团队作业8:软件测试与Alpha冲刺 实验时间 2018-6-13 Deadline: [6.13-6.19]之间任选连续5天的23:00,以团队随笔博文提交时间为准. 评分标准: 按时交 ...
- Bootstrap历练实例:激活导航状态
激活导航状态 您可以在激活状态的胶囊式导航和列表导航中放置徽章.通过使用 <span class="badge"> 来激活链接,如下面的实例所示: <!DOCTY ...
- libnet TCP示例
[root@TD18 tmp]#gcc -o .c -lnet [root@TD18 tmp]#./ please enter Host address 11.11.11.11 please ente ...
- Visual Studio 2017 UTF-8 无 BOM 一站式解决办法
问题背景:最近捡起C++,使用VS 2017平台.因为以前的编程习惯,喜欢使用UTF-8 无 BOM 的编码格式,好让自己的代码全球通用.但是VS 2017 对这个问题不是很友善.但最终找到了解决办法 ...
- centos7重启后/etc/resolv.conf 被还原解决办法
每次重启服务器后,/etc/resolv.conf文件就被自动还原了,最后发现是被Network Manager修改了. 查看Network Manager服务状态 systemctl status ...
- 【Python高级工程师之路】入门+进阶+实战+爬虫+数据分析整套教程
点击了解更多Python课程>>> 全网最新最全python高级工程师全套视频教程学完月薪平均2万 什么是Python? Python是一门面向对象的编程语言,它相对于其他语言,更加 ...
- laravel连接数据库提示mysql_connect() :Connection refused...
在.env配置文件中填写了正确的数据库连接配置的情况下连接还是出错了,明显提示的不是密码错误,那就看看端口吧, DB_HOST=127.0.0.1 DB_PORT= DB_DATABASE=test ...