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

商机互联做网站怎么样网站首页特效

商机互联做网站怎么样,网站首页特效,手机版的网站开发,网站建设丨金手指谷哥12一、原始DAO开发问题 Dao接口实现类方法中存在大量模板方法#xff0c;设想能否将这些代码提取出来#xff0c;大大减轻程序员的工作 量。 调用sqlSession的数据库操作方法需要指定statement的id#xff0c;这里存在硬编码#xff0c;不利于开发维护。 调用SqlSession方…一、原始DAO开发问题 Dao接口实现类方法中存在大量模板方法设想能否将这些代码提取出来大大减轻程序员的工作 量。   调用sqlSession的数据库操作方法需要指定statement的id这里存在硬编码不利于开发维护。   调用SqlSession方法时传入的变量由于SqlSession方法使用泛型即使变量类型传入错误在编译阶段也不报错不利于程序员开发。 注原始Dao开发和我们Web阶段讲解的Dao开发基本类似都是有Dao接口和Dao实现类无非 Web阶段的Dao实现类中通过DBUtils来操作SQL现在Mybatis的原始Dao开发把SQL分离出去 了写在的XML映射文件里面而已。 二、Mapper代理方式 Mapper代理开发方式只需要程序员编写Mapper接口相当于Dao接口由MyBatis框架根据接口定义创建接口的动态代理对象代理对象的方法体同上边Dao接口实现类方法。 程序员编写Mapper接口需要遵循一些开发规范MyBatis可以自动生成Mapper接口实现类代理对象。 一、开发规范 1、Mapper.xml文件中的namespace与mapper接口的类路径相同。 2、Mapper.xml中定义的每个标签的id与Mapper接口方法名相同。 3、Mapper.xml中定义的每个sql的parameterType的类型与Mapper接口方法的参数类型相同。 4、Mapper.xml中定义的每个sql的resultType的类型与Mapper接口方法返回值类型相同。 注Mapper.xml映射文件最好和Mapper接口名称一致。 环境搭建和之前的一样。 二、实体类 package org.example.entity;import java.util.Date;public class Emp {private Integer empno;private String ename;private String job;private Integer mgr;private Date hiredate;private Double sal;private Double comm;private Integer deptno;public Integer getEmpno() {return empno;}public void setEmpno(Integer empno) {this.empno empno;}public String getEname() {return ename;}public void setEname(String ename) {this.ename ename;}public String getJob() {return job;}public void setJob(String job) {this.job job;}public Integer getMgr() {return mgr;}public void setMgr(Integer mgr) {this.mgr mgr;}public Date getHiredate() {return hiredate;}public void setHiredate(Date hiredate) {this.hiredate hiredate;}public Double getSal() {return sal;}public void setSal(Double sal) {this.sal sal;}public Double getComm() {return comm;}public void setComm(Double comm) {this.comm comm;}public Integer getDeptno() {return deptno;}public void setDeptno(Integer deptno) {this.deptno deptno;}Overridepublic String toString() {return Emp{ empno empno , ename ename \ , job job \ , mgr mgr , hiredate hiredate , sal sal , comm comm , deptno deptno };} }三、Mapper接口 package org.example.mapper;import org.example.entity.Emp;import java.util.List; //Mapper接口相当于我们之前写的Dao接口只是在Mybatis里面我们习惯这么写而已 public interface EmpMapper {ListEmp select();Emp selectById(Integer empno);void insert(Emp emp);int update(Emp emp);boolean delete(Integer empno); }批量查询方法返回值为List类型表示SqlSession对象将调用selectList()方法。 单条查询方法返回值为单个实体对象表示SqlSession对象将调用selectOne()方法。 增删改 方法返回值为void表示SqlSession对象中insertupdatedelete方法的返回值不做任何处理。     方法返回值为int类型表示SqlSession对象中insertupdatedelete方法的返回值直接返 回。    方法返回值为boolean类型表示根据SqlSession对象中的insertupdatedelete方法返回 值影响数据库的条数判断操作是否成功如果影响数据库的条数大于0条表示成功否 则表示失败。 (四、mapper文件 ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd !--namespace与Mapper接口的全限定名保持一致-- mapper namespaceorg.example.mapper.EmpMapper!--statementId与Mapper接口的方法名称保持一致parameterType的类型必须与方法的参数类型保持一致resultType的类型必须与方法的返回值类型保持一致--select idselect resultTypeorg.example.entity.Empselect empno,ename,job,mgr,hiredate,sal,comm,deptno from emp/selectselect idselectById parameterTypejava.lang.IntegerresultTypeorg.example.entity.Empselect empno,ename,job,hiredate,mgr,sal,comm,deptno from emp whereempno#{empno}/selectinsert idinsert parameterTypeorg.example.entity.Empinsert into emp(ename,job,mgr,hiredate,sal,comm,deptno)values(#{ename},#{job},#{mgr},#{hiredate},#{sal},#{comm},#{deptno})/insertupdate idupdate parameterTypeorg.example.entity.Empupdate emp setename#{ename},job#{job},mgr#{mgr},hiredate#{hiredate},sal#{sal},comm#{comm},deptno#{deptno}where empno#{empno}/updatedelete iddelete parameterTypejava.lang.Integerdelete from emp where empno#{empno}/delete /mapper 五、utils工具类 package org.example.utils;import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException; import java.io.InputStream;public class MybatisUtil {private MybatisUtil(){}private static SqlSessionFactory sqlSessionFactory;static {//1.创建读取全局配置文件的流try {InputStream is Resources.getResourceAsStream(mybatis-config.xml);//2、获取SqlSessionFactorysqlSessionFactory new SqlSessionFactoryBuilder().build(is);} catch (IOException e) {throw new RuntimeException(e);}}public static SqlSession getSession(){sqlSessionFactory.openSession();return sqlSessionFactory.openSession();}}六、、测试 import com.gs.entity.Emp; import com.gs.mapper.EmpMapper; import com.gs.util.MybatisUtil; import org.apache.ibatis.session.SqlSession; import org.junit.After; import org.junit.Before; import org.junit.Test; import java.util.Date; import java.util.List; public class MapperTest { private SqlSession sqlSession; private EmpMapper empMapper; Before public void before() { sqlSession MybatisUtil.getSession(); //获取Mapper接口的代理对象 empMapper sqlSession.getMapper(EmpMapper.class); } After public void after() { sqlSession.commit(); sqlSession.close(); } Test public void test() { System.out.println(sqlSession); System.out.println(empMapper); } Test public void testSelect() { ListEmp list empMapper.select(); for (Emp emp : list) { System.out.println(emp); } } Test public void testSelectById() { Emp emp empMapper.selectById(7938); System.out.println(emp); } Test public void testInsert() { Emp emp new Emp(); emp.setEname(小明); emp.setJob(职员); emp.setSal(4500.0); emp.setComm(1000.0); emp.setMgr(1); emp.setHiredate(new Date()); empMapper.insert(emp); } Test public void testUpdate() { Emp emp new Emp(); emp.setEmpno(7940); emp.setEname(小李); emp.setJob(秘书); emp.setSal(5300.0); emp.setComm(1300.0); emp.setMgr(1); emp.setHiredate(new Date()); int result empMapper.update(emp); System.out.println(方法的返回值 result); } Test public void testDelete() { boolean result empMapper.delete(7940); System.out.println(方法的返回值 result); } }Mybatis官方推荐使用mapper代理方式开发mapper接口程序员不用编写mapper接口实现类使用mapper代理方法时输入参数可以使用pojo包装对象或map对象保证dao的通用性。
http://www.dnsts.com.cn/news/80027.html

相关文章:

  • 餐饮公司加盟网站建设有哪些专做自然风景图片的网站
  • 飞虎队网站建设佳木斯做网站
  • 网站建设哪家服务态度好江阴网络推广公司
  • 东阳做网站公司电子商务网站建设课
  • 做三年网站需要多少钱政务公开 加强门户网站建设
  • wordpress中英文转换宁波seo外包
  • 做生存分析的网站有哪些自己建公司网站可以嘛
  • 一个具体网站的seo优化wordpress会员地址
  • 网站内容页面怎么做做名片去哪个网站
  • 从网站建设到网站运营上海建网站计划
  • 推广网站企业WordPress 文章模板制作
  • c2c商城网站建设二次开发什么平台推广效果最好
  • 网站内容更新慢原因杭州网站建设找思创
  • thinkphp可以做网站吗建筑在线设计平台
  • 网站建设评比考核报告河南企业网络推广方法
  • 手机建立一个免费网站h5案例分享平台
  • 建立网站要准备多少钱海淀网站建设公司电话
  • 阜新本地网站建设平台网站代码关键词标题
  • 响应式布局网站开发如何建设公司的网站首页
  • 网站速度诊断安全文化建设示范企业
  • 手机网站自助建站源码同ip多域名做同行业网站
  • 成都哪家网站开发好做网站什么内容吸引人
  • 哪个网站做长图免费转高清镇江教育平台网站建设
  • 类似 wordpress 建站黑色大气金融投资企业网站模板
  • 建网站公司 快云网站更换ip地址
  • 浅谈网站建设无锡做网站的公司
  • 2002年做网站多少钱设计公司怎么开
  • 长春百度网站排名优化程序wordpress
  • wordpress模板 门户网站喜欢做网站
  • 旅游网站项目计划书广告公司名字怎么取好