mybatis使用 原始dao开发 (自己写dao实现类)
2017-09-07 00:00
351 查看
先配置sqlMapConfig.xml文件
user.xml 映射文件
第一个dao实现类 的查询用户的方法
原始dao开发过程中的问题
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 加载配置文件 --> <properties resource="db.properties"></properties> <!-- 开启二级缓存 --> <settings> <setting value="true" name="cacheEnabled"/> </settings> <!-- 对事务的管理和连接池的配置 --> <!-- 和spring 整合后environments配置将废除 --> <environments default="development"> <environment id="development"> <!-- 使用jdbc事物管理,事物控制由mybatis管理 --> <transactionManager type="JDBC" /> <!-- 数据库连接池 --> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.uername}" /> <property name="password" value="${jdbc.password}" /> </dataSource> </environment> </environments> <!-- 在sqlmapconfig.xml中加载映射文件 --> <mappers> <mapper resource="sqlMap/User.xml"/> <mapper resource="sqlMap/UserMapper.xml"/> <mapper resource="com/shi/mapper/OrderMapper.xml"/> </mappers> </configuration>
user.xml 映射文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- namespace命名空间,作用就是对sql进行分类化管理,理解sql隔离 注意:使用mapper代理方法开发,namespace有特殊重要的作用--> <mapper namespace="test"> <!-- 在映射文件中配置很多sql语句 --> <!-- 需通过id查询用户 --> <!-- 通过select执行查询 id:表示映射文件中的sql 讲sql语句封装到mapedStatement对象中,所以将id称为statement的id parameterType:指定输入参数的类型,这里指定int型 #{} :表示一个占位符 #{id} : 其中的id表示接受输入的参数,参数名称就是id,如果输入的参数是简单类型, #{}中的参数名可以任意,可以value或者其他名称 resultType :指定sql输出的所映射的java对象类型,select指定resultType表示 将单条记录映射成的java对象 --> <select id="findUserById" parameterType="int" resultType="com.shi.POJO.User"> SELECT * FROM USER WHERE id=#{value} </select> <!-- 根据用户名称模糊查询用户,可能返回多条记录, resultType :指定的就是单条记录所映射的java对象类型 %{}表示拼接sql串,将接受的参数类容不加修饰的拼接在sql中 问题:使用${}拼接sql,引起sql注入 不安全 ${value} :接受参数的类容,如果传入的参数是简单类型,${}中只能使用value --> <select id="findUserByName" parameterType="java.lang.String" resultType="com.shi.POJO.User"> SELECT * FROM USER WHERE username LIKE '%${value}%' </select> <!-- 删除用户 --> <delete id="deleteUser" parameterType="int"> delete from user where id=#{id} </delete> <!-- 跟新用户 --> <update id="updateUser" parameterType="com.shi.POJO.User"> update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} where id=#{id} </update> </mapper>
第一个dao实现类 的查询用户的方法
@Test public void findByIdTest() throws IOException { //获取mybatis配置文件 String resource="SqlMapConfig.xml"; //得到配置文件流 InputStream inputStream=Resources.getResourceAsStream(resource); //InputStream inputStream=Resources.getUrlAsStream(""); System.out.println(inputStream); //创建会话工厂,传入mybatis配置文件信息 SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream); //通过工厂得到sqlSession SqlSession sqlSession=sqlSessionFactory.openSession(); //通过sqlSession操作数据库 //第一个参数:映射文件中的statement的id。等于=namespace+"."+statement的id //第二个参数:指定和映射文件中所匹配的parameterType类型的参数 //sqlSession.selectOne(statement,type);返回的结果是和映射文件中匹配的resultType类型的对象 User user=sqlSession.selectOne("test.findUserById", 1); //System.out.println("用户名是 : "+user.getUsername()); System.out.println(user); //释放资源 sqlSession.close(); }
原始dao开发过程中的问题
相关文章推荐
- Mybatis开发原始Dao(即有Dao的实现)
- mybatis原始dao开发改进(dao接口和dao实现类)
- Mybatis之原始dao开发方法(程序员需要写dao接口和dao实现类)(11)
- JavaEE_Mybatis_SpringMVC_框架整合_lesson1_简单的SSM框架搭建_使用原始Dao开发方式进行测试
- 使用mybatis开发原始dao
- 【Mybatis从0到1-015】Spring与MyBatis整合原始开发DAO(不推荐使用)
- JavaWeb学习笔记-mybatis-07-dao开发使用(原始dao方法)
- Mybatis学习(2)原始dao开发和使用mapper接口代理开发
- mybatis(7)--使用mapper代理开发代替原始的dao开发
- mybatis原始dao开发实现用户的增删改查
- Mybatis学习(九)mybatis原始dao接口与dao实现的开发。
- 【mybatis深度历险系列】深入浅出mybatis中原始dao的开发和mapper代理开发
- mybatis和ibatis原始实现DAO
- (四)mybatis学习之原始Dao开发方式及与spring整合
- mybatis入门基础(二)----原始dao的开发和mapper代理开发
- 【mybatis深度历险系列】深入浅出mybatis中原始dao的开发和mapper代理开发
- AAAMybatis使用MapperScannerConfigurer实现自动注册dao到spring容器
- mybatis入门基础(二)----原始dao的开发和mapper代理开发------------转载
- mybatis入门基础(二)----原始dao的开发和mapper代理开发
- mybatis入门基础(二)----原始dao的开发和mapper代理开发