当前位置: 首页 > news >正文

网站负责人查询重庆网络技术有限公司

网站负责人查询,重庆网络技术有限公司,番禺人才网招聘网官网,国外域名购买网站整合思路 1、SqlSessionFactory对象应该放到spring容器中作为单例存在。 2、传统dao的开发方式中#xff0c;应该从spring容器中获得sqlsession对象。 3、Mapper代理形式中#xff0c;应该从spring容器中直接获得mapper的代理对象。 4、数据库的连接以及数据库连接池事务…整合思路 1、SqlSessionFactory对象应该放到spring容器中作为单例存在。 2、传统dao的开发方式中应该从spring容器中获得sqlsession对象。 3、Mapper代理形式中应该从spring容器中直接获得mapper的代理对象。 4、数据库的连接以及数据库连接池事务管理都交给spring容器来完成。 整合需要的jar包 1、spring的jar包 2、Mybatis的jar包 3、Springmybatis的整合包。 4、Mysql的数据库驱动jar包。 5、数据库连接池的jar包。 配置文件 SqlMapConfig.xml 配置文件是SqlMapConfig.xml如下 ?xml version1.0 encodingUTF-8 ? !DOCTYPE configuration PUBLIC -//mybatis.org//DTD Config 3.0//EN http://mybatis.org/dtd/mybatis-3-config.dtd configuration!-- 设置别名 --typeAliases!-- 2. 指定扫描包会把包内所有的类都设置别名别名的名称就是类名大小写不敏感 --package namecn.itcast.mybatis.pojo //typeAliases/configurationapplicationContext.xml SqlSessionFactoryBean属于mybatis-spring这个jar包 如何查看SqlSessionFactoryBean源码 对于spring来说mybatis是另外一个架构需要整合jar包。 在项目中加入mybatis-spring-1.2.2.jar的源码如下图 效果如下图所示图标变化表示源码加载成功 整合Mybatis需要的是SqlSessionFactoryBean位置如下图 applicationContext.xml配置内容如下 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:contexthttp://www.springframework.org/schema/context xmlns:phttp://www.springframework.org/schema/pxmlns:aophttp://www.springframework.org/schema/aop xmlns:txhttp://www.springframework.org/schema/txxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd!-- 加载配置文件 --context:property-placeholder locationclasspath:db.properties /!-- 数据库连接池 --bean iddataSource classorg.apache.commons.dbcp.BasicDataSourcedestroy-methodcloseproperty namedriverClassName value${jdbc.driver} /property nameurl value${jdbc.url} /property nameusername value${jdbc.username} /property namepassword value${jdbc.password} /property namemaxActive value10 /property namemaxIdle value5 //bean!-- 配置SqlSessionFactory --bean idsqlSessionFactory classorg.mybatis.spring.SqlSessionFactoryBean!-- 配置mybatis核心配置文件 --property nameconfigLocation valueclasspath:SqlMapConfig.xml /!-- 配置数据源 --property namedataSource refdataSource //bean /beansdb.properties jdbc.drivercom.mysql.jdbc.Driver jdbc.urljdbc:mysql://localhost:3306/mybatis?characterEncodingutf-8 jdbc.usernameroot jdbc.passwordrootlog4j.properties # Global logging configuration log4j.rootLoggerDEBUG, stdout # Console output... log4j.appender.stdoutorg.apache.log4j.ConsoleAppender log4j.appender.stdout.layoutorg.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern%5p [%t] - %m%n效果 Dao的开发 两种dao的实现方式 1、原始dao的开发方式 2、使用Mapper代理形式开发方式 a) 直接配置Mapper代理 b) 使用扫描包配置Mapper代理需求 1. 实现根据用户id查询 2. 实现根据用户名模糊查询 3. 添加用户 创建pojo public class User {private int id;private String username;// 用户姓名private String sex;// 性别private Date birthday;// 生日private String address;// 地址get/set。。。 }传统dao的开发方式 原始的DAO开发接口实现类来完成。 需要dao实现类需要继承SqlsessionDaoSupport类 实现Mapper.xml 编写User.xml配置文件如下 ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacetest!-- 根据用户id查询 --select idqueryUserById parameterTypeint resultTypeuserselect * from user where id #{id}/select!-- 根据用户名模糊查询用户 --select idqueryUserByUsername parameterTypestringresultTypeuserselect * from user where username like %${value}%/select!-- 添加用户 --insert idsaveUser parameterTypeuserselectKey keyPropertyid keyColumnid orderAFTERresultTypeintselect last_insert_id()/selectKeyinsert into user(username,birthday,sex,address)values(#{username},#{birthday},#{sex},#{address})/insert/mapper加载Mapper.xml 在SqlMapConfig如下图进行配置: 实现UserDao接口 public interface UserDao {/*** 根据id查询用户* * param id* return*/User queryUserById(int id);/*** 根据用户名模糊查询用户列表* * param username* return*/ListUser queryUserByUsername(String username);/*** 保存* * param user*/void saveUser(User user);}实现UserDaoImpl实现类 编写DAO实现类实现类必须集成SqlSessionDaoSupport SqlSessionDaoSupport提供getSqlSession()方法来获取SqlSession public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {Overridepublic User queryUserById(int id) {// 获取SqlSessionSqlSession sqlSession super.getSqlSession();// 使用SqlSession执行操作User user sqlSession.selectOne(queryUserById, id);// 不要关闭sqlSessionreturn user;}Overridepublic ListUser queryUserByUsername(String username) {// 获取SqlSessionSqlSession sqlSession super.getSqlSession();// 使用SqlSession执行操作ListUser list sqlSession.selectList(queryUserByUsername, username);// 不要关闭sqlSessionreturn list;}Overridepublic void saveUser(User user) {// 获取SqlSessionSqlSession sqlSession super.getSqlSession();// 使用SqlSession执行操作sqlSession.insert(saveUser, user);// 不用提交,事务由spring进行管理// 不要关闭sqlSession} }配置dao 把dao实现类配置到spring容器中如下图 测试方法 创建测试方法可以直接创建测试Junit用例。 如下图所示进行创建。 编写测试方法如下 public class UserDaoTest { private ApplicationContext context; Before public void setUp() throws Exception {this.context new ClassPathXmlApplicationContext(classpath:applicationContext.xml); }Test public void testQueryUserById() {// 获取userDaoUserDao userDao this.context.getBean(UserDao.class);User user userDao.queryUserById(1);System.out.println(user); }Test public void testQueryUserByUsername() {// 获取userDaoUserDao userDao this.context.getBean(UserDao.class);ListUser list userDao.queryUserByUsername(张);for (User user : list) {System.out.println(user);} }Test public void testSaveUser() {// 获取userDaoUserDao userDao this.context.getBean(UserDao.class);User user new User();user.setUsername(曹操);user.setSex(1);user.setBirthday(new Date());user.setAddress(三国);userDao.saveUser(user);System.out.println(user); }} Mapper代理形式开发dao 编写UserMapper.xml配置文件如下 ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecn.itcast.mybatis.mapper.UserMapper!-- 根据用户id查询 --select idqueryUserById parameterTypeint resultTypeuserselect * from user where id #{id}/select!-- 根据用户名模糊查询用户 --select idqueryUserByUsername parameterTypestringresultTypeuserselect * from user where username like %${value}%/select!-- 添加用户 --insert idsaveUser parameterTypeuserselectKey keyPropertyid keyColumnid orderAFTERresultTypeintselect last_insert_id()/selectKeyinsert into user(username,birthday,sex,address) values(#{username},#{birthday},#{sex},#{address})/insert /mapper实现UserMapper接口 public interface UserMapper {/*** 根据用户id查询* * param id* return*/User queryUserById(int id);/*** 根据用户名模糊查询用户* * param username* return*/ListUser queryUserByUsername(String username);/*** 添加用户* * param user*/void saveUser(User user); }方式一配置mapper代理 在applicationContext.xml添加配置 MapperFactoryBean也是属于mybatis-spring整合包 !-- Mapper代理的方式开发方式一配置Mapper代理对象 -- bean iduserMapper classorg.mybatis.spring.mapper.MapperFactoryBean!-- 配置Mapper接口 --property namemapperInterface valuecn.itcast.mybatis.mapper.UserMapper /!-- 配置sqlSessionFactory --property namesqlSessionFactory refsqlSessionFactory / /bean测试方法 public class UserMapperTest {private ApplicationContext context;Beforepublic void setUp() throws Exception {this.context new ClassPathXmlApplicationContext(classpath:applicationContext.xml);}Testpublic void testQueryUserById() {// 获取MapperUserMapper userMapper this.context.getBean(UserMapper.class);User user userMapper.queryUserById(1);System.out.println(user);}Testpublic void testQueryUserByUsername() {// 获取MapperUserMapper userMapper this.context.getBean(UserMapper.class);ListUser list userMapper.queryUserByUsername(张);for (User user : list) {System.out.println(user);}}Testpublic void testSaveUser() {// 获取MapperUserMapper userMapper this.context.getBean(UserMapper.class);User user new User();user.setUsername(曹操);user.setSex(1);user.setBirthday(new Date());user.setAddress(三国);userMapper.saveUser(user);System.out.println(user);} }方式二扫描包形式配置mapper !-- Mapper代理的方式开发方式二扫描包方式配置代理 -- bean classorg.mybatis.spring.mapper.MapperScannerConfigurer!-- 配置Mapper接口 --property namebasePackage valuecn.itcast.mybatis.mapper / /bean每个mapper代理对象的id就是类名首字母小写 练习代码保存 applicationContext.xml ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:contexthttp://www.springframework.org/schema/context xmlns:phttp://www.springframework.org/schema/pxmlns:aophttp://www.springframework.org/schema/aop xmlns:txhttp://www.springframework.org/schema/txxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd!-- 加载配置文件 --context:property-placeholder locationclasspath:db.properties /context:component-scan base-packagecom.itcast.dao/context:component-scan!-- 数据库连接池 --bean iddataSource classorg.apache.commons.dbcp.BasicDataSourcedestroy-methodcloseproperty namedriverClassName value${jdbc.driver} /property nameurl value${jdbc.url} /property nameusername value${jdbc.username} /property namepassword value${jdbc.password} /property namemaxActive value10 /property namemaxIdle value5 //bean!-- 配置SqlSessionFactory --bean namesqlSessionFactory classorg.mybatis.spring.SqlSessionFactoryBean!-- 配置mybatis核心配置文件 --property nameconfigLocation valueclasspath:SqlMapConfig.xml /!-- 依赖注入 -配置数据源 --property namedataSource refdataSource //bean!-- 原始DAO开发 配置UserDaoImpl --bean nameuserDao classcom.itcast.dao.UserDaoImpl!-- 配置sqlSessionFactory --property namesqlSessionFactory refsqlSessionFactory/property/bean!-- mybatis中mapper动态代理 --!-- bean namemapperFactoryBean classorg.mybatis.spring.mapper.MapperFactoryBeanproperty namesqlSessionFactory refsqlSessionFactory/propertyproperty namemapperInterface valuecom.itcast.mapper.mapper //bean --!-- 增强版mapper动态代理 --bean classorg.mybatis.spring.mapper.MapperScannerConfigurer!-- 此时不需要写得到sqlSessionFactory因为sqlsessionfactory配置在spring容器当中它自动会去找 --property namebasePackage valuecom.itcast.mapper/property/bean /beansmapper动态代理代码 SqlMapConfig.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE configuration PUBLIC -//mybatis.org//DTD Config 3.0//EN http://mybatis.org/dtd/mybatis-3-config.dtd configuration!-- 设置别名 --typeAliases!-- 2. 指定扫描包会把包内所有的类都设置别名别名的名称就是类名大小写不敏感 --package namecom.itcast.dao //typeAliasesmappersmapper resourceUserMapper.xml/!-- 当DAO用传统的DAO开发的时候不能用其他的方式导入mapper.xml文件只能用package --package namecom.itcast.mapper//mappers /configurationmapper.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtdmapper namespacecom.itcast.mapper.mapper!-- 通过ID查询一个用户 --select idqueryUserById parameterTypeInteger resultTypecom.itcast.pojo.User!-- include refidselector/include --select * from user where id #{id}/select /mapper mapper.java package com.itcast.mapper1;import com.itcast.pojo1.User;public interface mapper {public User queryUserById(Integer id); }原始DAO开发方式代码 UserDao.java package com.itcast.dao;import com.itcast.pojo1.User;public interface UserDao {public User queryUserById(Integer id);public Integer countUser(); }UserDaoImpl.java package com.itcast.dao;import org.apache.ibatis.session.SqlSession; import org.mybatis.spring.support.SqlSessionDaoSupport;import com.itcast.pojo1.User;public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {Overridepublic User queryUserById(Integer id) {SqlSession session super.getSqlSession();User user session.selectOne(queryUserById, id);return user;}Overridepublic Integer countUser() {SqlSession session super.getSqlSession();Integer s session.selectOne(countUser);return s;} }测试类 package com.itcast.test;import javax.annotation.Resource;import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;import com.itcast.dao.UserDao; import com.itcast.mapper1.mapper; import com.itcast.pojo1.User; /*RunWith(SpringJUnit4ClassRunner.class) ContextConfiguration(classpath:applicationContext.xml)*/ public class TestUserDaoDemo1 {Resource(nameuserDao)public UserDao userDao;private ApplicationContext context;/*传统DAO开发方式*/Testpublic void testDemo() {this.context new ClassPathXmlApplicationContext(classpath:applicationContext.xml);UserDao userDao (UserDao) context.getBean(userDao);User user userDao.queryUserById(1);System.out.println(user);}/*mapper动态代理不需要写实现类只需要写接口即可*/Testpublic void testDemo1() {this.context new ClassPathXmlApplicationContext(classpath:applicationContext.xml);UserDao userDao (UserDao) context.getBean(userDao);Integer s userDao.countUser();System.out.println(s);}/*mapper动态代理增强版解决了上述方式中多个mapper文件都需要手动导入*/Testpublic void testDemo2() {this.context new ClassPathXmlApplicationContext(classpath:applicationContext.xml);/*有两种方式可以加载mapper 通过文件名字或者是mapper.class*/mapper bean (mapper) context.getBean(mapper);User user bean.queryUserById(1);System.out.println(user);} }
http://wiki.neutronadmin.com/news/187380/

相关文章:

  • 百度地图手机网站开发中小企业网络拓扑图绘制
  • wordpress在这个站点注册有个能写文章做任务的网站
  • 用淘宝做公司网站青海政企网站建设
  • 互联网网站开发创业计划书设计素材网站情人节
  • 公司建网站搭建服务器网站设计报价怎么做
  • 哪些公司需要做网站免费下载百度软件
  • php带数据库的网站市场营销公司
  • 莆系医疗网站建设软文推广法
  • 网站建站多钱简述微信营销的技巧
  • 网站宣传有文化事业建设费吗佛山建设网站公司
  • 浙江省建设执业资格中心网站国际新闻最新消息十条摘抄2022
  • 兼职网站的建设目标怎么写电脑网址大全
  • 苏州集团网站设计开发网站建设的部署
  • 团购网站APP怎么做wordpress 导航栏搜索
  • 高校门户网站的建设方案网络小说网站三巨头
  • 新闻类网站排版网站建设石河子网站建设公司
  • 网站设计与制作是网页吗计算机软件培训机构哪个好
  • 代刷网站建设不关站备案wordpress
  • 天津建设网站哪家好玉林博白网站建设
  • 吴川网站建设公司企业推广图片
  • 站长工具seo综合查询怎么用可信网站验证服务
  • 大型网站的例子专做皮鞋销售网站
  • 上海网站建设价位跟京东类似的网站
  • 外包加工网缝纫机外放加工活网站建设优化教程
  • 做药公司的网站前置审批石家庄seo排名公司
  • 外贸零售网站建设一个数据库怎么做二个网站
  • 建公司网站建设明细报价表win10怎么删除2345网址导航
  • 做设计的素材网站263企业邮箱入口登录找回密码
  • 用手机制作网站的软件广东省建设执业注册中心网站
  • 农场游戏系统开发 网站建设推广深圳福田园岭网站建设