SSM框架学习之(一)Mybatis——原始Dao开发
来源:互联网 发布:全棉时代 知乎 编辑:程序博客网 时间:2024/06/15 09:38
SSM框架学习之(一)Mybatis——原始Dao开发
首先看一下工程总体结构
配置Mybatis环境
导入相关Jar包
asm-3.3.1.jarcglib-2.2.2.jarcommons-logging-1.1.1.jarjavassist-3.17.1-GA.jarjunit-4.9.jarlog4j-1.2.17.jarlog4j-api-2.0-rc1.jarlog4j-core-2.0-rc1.jarmybatis-3.2.7.jarmysql-connector-java-5.1.7-bin.jarslf4j-api-1.7.5.jarslf4j-log4j12-1.7.5.jar
配置log4j属性文件
log4j.rootLogger=DEBUG,stdoutlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.ConversionPattern=%5p [%t] - %n%n
配置Mysql属性文件
jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/mybatisjdbc.username=rootjdbc.password=123
创建SqlMapConfig.xml文件
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <properties resource="db.properties"/> <!-- 和spring整合后 environments配置将废除--> <environments default="development"> <environment id="development"> <!-- 使用jdbc事务管理,事务控制由mybatis--> <transactionManager type="JDBC" /> <!-- 数据库连接池,由mybatis管理--> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </dataSource> </environment> </environments> <mappers> </mappers></configuration>
Dao层和Service层开发
创建User实体类,类的成员属性对应数据库里的字段名,同时提供set和get方法
public class User { private int id; private String username; private String sex; private String birthday; private String address; ......
再就是编写Dao层接口
public interface UserDao { User findUserById(int id); List<User> findUserByName(String name); void addUser(User user); void delUser(int id);}
其次提供Dao的实现类
public class UserDaoImpl implements UserDao { private SqlSessionFactory factory;public UserDaoImpl(SqlSessionFactory factory) { this.factory = factory;}@Overridepublic User findUserById(int id) { SqlSession session = factory.openSession(); User user = session.selectOne("test.findUserById", id); session.close(); return user;}@Overridepublic List<User> findUserByName(String name) { SqlSession session = factory.openSession(); List<User> list= session.selectList("test.findUserByName", name); session.close(); return list;}@Overridepublic void addUser(User user) { SqlSession session = factory.openSession(); session.insert("test.addUser", user); session.commit(); session.close();}@Overridepublic void delUser(int id) { SqlSession session = factory.openSession(); session.delete("test.delUser", id); session.commit(); session.close();}
}
整合Mybatis
创建user.xml,根据Dao接口编写mapper映射文件
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="test"> <!-- 按ID查询用户 --> <select id="findUserById" parameterType="int" resultType="cn.allene.mybatis.first.po.User"> SELECT * FROM USER WHERE id=#{id} </select> <!-- 按名字模糊查询用户 --> <select id="findUserByName" parameterType="java.lang.String" resultType="cn.allene.mybatis.first.po.User"> SELECT * FROM USER WHERE username LIKE '%${value}%' </select> <!-- 添加用户 --> <insert id="addUser" parameterType="cn.allene.mybatis.first.po.User" > insert into user(username, birthday, sex, address) value(#{username}, #{birthday}, #{sex}, #{address}) </insert> <!-- 按ID删除用户 --> <delete id="delUser" parameterType="int"> delete from user where id=#{id} </delete></mapper>
最后在SqlMapConfig.xml文件中添加user.xml映射文件
<mappers> <mapper resource="sqlmap/User.xml"/></mappers>
最后测试Service层业务逻辑
这里使用到JUnit单元测试框架
public class UserTest { SqlSessionFactory sqlSessionFactory; @Before public void before() throws IOException{ String resoure = "SqlMapConfig.xml"; InputStream urlAsStream = Resources.getResourceAsStream(resoure); sqlSessionFactory = new SqlSessionFactoryBuilder().build(urlAsStream); } @Test public void findUserById(){ UserDao dao = new UserDaoImpl(sqlSessionFactory); User user = dao.findUserById(1); System.out.println(user); } @Test public void findUserByName(){ UserDao dao = new UserDaoImpl(sqlSessionFactory); List<User> users= dao.findUserByName("小"); System.out.println(users); } @Test public void addUser(){ UserDao dao = new UserDaoImpl(sqlSessionFactory); User user = new User(1, "张三", "男", System.currentTimeMillis()+"", "湖南省张家界市"); dao.addUser(user); } @Test public void delUser(){ UserDao dao = new UserDaoImpl(sqlSessionFactory); dao.delUser(24); }}
阅读全文
0 0
- SSM框架学习之(一)Mybatis——原始Dao开发
- Mybatis-Dao层开发之原始dao
- 【MyBatis框架点滴】——MyBatis开发DAO的两种方法:原始DAO开发方法和Mapper代理方法
- ssm框架搭建(一)-Dao层搭建-mybatis
- SSM框架学习之(二)Mybatis——mapper开发
- (四)mybatis学习之原始Dao开发方式及与spring整合
- 原始DAO开发mybatis
- Mybatis(原始dao开发)
- mybatis学习之原始开发DAO与mapper代理开发DAO的区别
- Mybatis学习(九)mybatis原始dao接口与dao实现的开发。
- 【JAVA - SSM】之MyBatis开发DAO
- SSM框架之MyBatis(一)
- mybatis(6)--mybatis开发dao之原始开发
- 【SSM-MyBatis框架】MyBatis开发DAO的方式
- Mybatis开发原始Dao(即有Dao的实现)
- Mybatis框架学习(二)—DAO开发方式和Mapper代理的开发方式
- 使用mybatis开发原始dao
- Mybatis原始的dao开发
- 浏览器通过apache访问php文件提示下载问题,更改项目文件目录
- 如何根据已有日期,添加给定天数后得到新日期
- #leetcode#Ugly Numbers 2
- 设计模式——工厂模式
- 实时汇率 隐私权政策
- SSM框架学习之(一)Mybatis——原始Dao开发
- CF #603K Indivisibility
- WEB数据传输——ajax加载数据
- Flex布局
- C++/MFC-套接字CSocket之UDP
- springMVC3.2 与 springMVC4.3配置mediaTypes的不同之处
- 通过PreparedStatement执行更新查询操作
- 小区的家用网线方式(不是电话线方式)上网,不接路由器,直接将网线插电脑上,为什么是黄色感叹号(证明网线没问题,但是联网有问题),而点击宽带连接并登陆账号和密码就没问题了
- 详解URL的组成