使用Mybatis框架的步骤:
1)导入依赖
2)复制配置文件
3)设置相关的javabean
4)测试
- 创建SqlsessionFactoryBuilder对象
- builder对象调用build(InputStream)得到SqlSessionFactory
- sqlSessionFacotry对象调用openSession()得到SqlSession对象
- sqlSession对象调用接口中方法selectList(String sqlId)就可以执行sql语句并获取结果集
- 释放资源
导入依赖
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.12</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.12</version> </dependency> </dependencies>
配置文件
SqlMapConfig.xml(数据库配置信息)
<?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> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8&useSSL=false&serverTimezone=GMT&allowPublicKeyRetrieval=false&useUnicode=true" /> <property name="username" value="sa" /> <property name="password" value="admin" /> </dataSource> </environment> </environments> <mappers> <mapper resource="UserMapper.xml" /> </mappers> </configuration>
UserMapper.xml(sql信息)
<?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.company.mapper.UserMapper"> <select id="queryUserList" resultType="com.company.pojo.User"> select * from user </select> <select id="queryUserByName" resultType="com.company.pojo.User" parameterType="String"> select * from user where username=#{username} </select> <select id="queryUserLikeName" resultType="com.company.pojo.User" parameterType="String"> select * from user where username like #{username} </select> <insert id="addUser" parameterType="com.company.pojo.User"> insert user(id,username,password,email,birthday) values(#{id},#{username},#{password},#{email},#{birthday}) </insert> </mapper>
log4j.properties(日志文件配置信息)
log4j.rootLogger =debug,systemOut,logFile
#输出到控制台
log4j.appender.systemOut = org.apache.log4j.ConsoleAppender
log4j.appender.systemOut.layout = org.apache.log4j.PatternLayout
log4j.appender.systemOut.layout.ConversionPattern = [%-5p][%-22d{yyyy/MM/dd HH:mm:ssS}][%l]%n%m%n
log4j.appender.systemOut.Target = System.out
#输出到文件
log4j.appender.logFile = org.apache.log4j.FileAppender
log4j.appender.logFile.layout = org.apache.log4j.PatternLayout
log4j.appender.logFile.layout.ConversionPattern = [%-5p][%-22d{yyyy/MM/dd HH:mm:ssS}][%l]%n%m%n
log4j.appender.logFile.File = log/log4j.log
log4j.appender.logFile.Encoding = UTF-8
#将日志输记录到MySQL数据库
#log4j.appender.logDB = org.apache.log4j.jdbc.JDBCAppender
#log4j.appender.logDB.layout = org.apache.log4j.PatternLayout
#log4j.appender.logDB.Driver = com.mysql.jdbc.Driver
#log4j.appender.logDB.URL = jdbc:mysql://localhost:3306/log4j?characterEncoding=utf-8
#log4j.appender.logDB.User = root
#log4j.appender.logDB.Password = root
#log4j.appender.logDB.Sql = INSERT INTO t_log4j(project_name,create_date,level,category,file_name,thread_name,line,all_category,message)values('mybatis','%d{yyyy-MM-ddHH:mm:ss}','%p','%c','%F','%t','%L','%l','%m')
设置相关javabean
User.java
public class User { private String id; private String username; private String password; private String email; private Date birthday; @Override public String toString() { return "User{" + "id='" + id + '\'' + ", username='" + username + '\'' + ", password='" + password + '\'' + ", email='" + email + '\'' + ", birthday=" + birthday + '}'; } public String getId() { return id; } public void setId(String id) { this.id = id; } 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 getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } }
测试
MyBatisTest.java
查询操作
@Test public void queryUserList() throws Exception{ SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder(); InputStream inputStream=Resources.getResourceAsStream("SqlMapConfig.xml"); SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(inputStream); inputStream.close(); SqlSession sqlSession=sqlSessionFactory.openSession(); List<User> users=sqlSession.selectList("com.company.mapper.UserMapper.queryUserList"); users.forEach(System.out::println); sqlSession.close(); }
保存操作
@Test public void saveUser() throws Exception{ SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder(); InputStream inputStream=Resources.getResourceAsStream("SqlMapConfig.xml"); SqlSessionFactory sqlSessionFactory=sqlSessionFactory.build(inputStream); inputStream.close(); SqlSession sqlSession=sqlSessionFactory.openSession(); User user=new User(); user.setId(UUID.randomUUID().toString()); user.setUsername("帅哥"); user.setPassword("handsome"); user.setEmail("123@qq.com"); user.setBirthday(new Date()); int insertCount=sqlSession.insert("com.company.mapper.UserMapper.addUser",user); System.out.println("影响的行数:"+inserCount); sqlSession.commit(); sqlSession.close(); }
posted on
浙公网安备 33010602011771号