mybatis -- orm框架 支持定制化sql、存储过程
1.引入依赖到pom
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.0.5</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.25</version> </dependency>
2.mybatis应用的关键在于SqlSessionFactory,用于创建session(会话)。SqlSessionFactory通过SqlSessionFactoryBuilder 创建。
-- mybatis-config.xml构建SqlSessionFactory ,配置数据源
<?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> <typeAliases> <typeAlias type="com.dao.UserDao" alias="UserDao"/> <typeAlias type="com.dto.User" alias="User"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://127.0.0.1:3306/iMybatis?characterEncoding=GBK"/> <property name="username" value="root"/> <property name="password" value="123"/> </dataSource> </environment> </environments> <mappers> <mapper resource="UserDao.xml"/> </mappers> </configuration>
-- 读取配置(写在测试类中)
SqlSessionFactoryBuilder sqlSessionFactoryBuilder; SqlSessionFactory sqlSessionFactory; String resource = "mybatis-config.xml";(记得修改成自己的路径) Reader reader = Resources.getResourceAsReader(resource); sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); sqlSessionFactory = sqlSessionFactoryBuilder.build(reader);
2.创建dao及其映射文件
package com.dto; /** * Created by ltsd on 2017/2/28. */ public class User { private Integer userid; private String username; private String password; private String address; private String createtime; public Integer getUserid() { return userid; } public void setUserid(Integer userid) { this.userid = userid; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getCreatetime() { return createtime; } public void setCreatetime(String createtime) { this.createtime = createtime; } }
package com.dao; import com.dto.User; public interface UserDao { User queryUser(User user); }
<?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"> <mapper namespace="com.dao.UserDao"> <select id="queryUser" resultType="User" parameterType="User"> select * from t_user where userid = #{userid} </select> </mapper>
3.测试
--运行sql文件(添加一条记录)
package com; import com.dao.UserDao; import com.dto.User; 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.Reader; /** * Created by ltsd on 2017/2/28. */ public class Test { public static void main(String[] args) throws IOException { SqlSessionFactoryBuilder sqlSessionFactoryBuilder; SqlSessionFactory sqlSessionFactory; String resource = "mybatis-config.xml"; Reader reader = Resources.getResourceAsReader(resource); sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); sqlSessionFactory = sqlSessionFactoryBuilder.build(reader); SqlSession session = null; try { session = sqlSessionFactory.openSession(); UserDao userDao = session.getMapper(UserDao.class); User user = new User(); user.setUserid(1); User user1 = userDao.queryUser(user); System.out.print(user1.getUsername()); session.commit(true); } catch (Exception e) { session.rollback(true); } finally { session.close(); } } }
原文:http://cw666.blog.51cto.com/12488150/1902360