1.创建实体类 Blog
package com.wang.pojo;
import lombok.Data;
import java.util.Date;
@Data
public class Blog {
private String id;
private String title;
private String author;
private Date createTime;
private int view;
}
2.创建数据库操作接口与对应的Mapper
package com.wang.dao;
import com.wang.pojo.Blog;
import java.util.Date;
import java.util.List;
import java.util.Map;
public interface BlogMapper {
//插入数据
public void inSert(Blog blog);
//查找博客
public List<Blog> quereBlog(Map map);
}
BlogMapper.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">
<mapper namespace="com.wang.dao.BlogMapper">
<!-- 添加博客-->
<insert id="inSert" parameterType="Blog">
insert into mybatis.blog(id, title, author, create_time, view)
values (#{id},#{title},#{author},#{createTime},#{view});
</insert>
<!-- map查询语句-->
<select id="quereBlog" parameterType="map" resultType="Blog">
select * from mybatis.blog where 1=1
<if test="title!=null">
and title=#{title}
</if>
<if test="author!=null">
and author=#{author}
</if>
</select>
</mapper>
3.编写mybatis配置文件 mybatis-config.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>
<properties resource="db.properties"/>
<settings>
<!-- 输出日志-->
<!-- <setting name="logImpl" value="STDOUT_LOGGING"/>-->
<!-- 驼峰命名转换-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<!-- 设置别名 -->
<typeAliases>
<package name="com.wang.pojo"/>
</typeAliases>
<!-- 连接数据库 -->
<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://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!-- 绑定Mapper.xml文件 -->
<mappers>
<mapper resource="com/wang/dao/BlogMapper.xml"/>
</mappers>
</configuration>
4.创建工具类
package com.wang.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 MyBatisUtils {
// 获得SqlSessionFactory
static SqlSessionFactory sqlSessionFactory;
static {
try {
String resource = "mybatis-config.xml";
InputStream stream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(stream);
} catch (IOException e) {
e.printStackTrace();
}
}
// 获得SqlSession对象
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession(true);
}
}
5. 创建实现类
public class Text {
@Test
public void addBlog(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
BlogMapper mapper = sqlSession.getMapper(BlogMapper.class);
Blog blog=new Blog();
blog.setId(IDutils.getID());
blog.setTitle("Java快速入门");
blog.setAuthor("少年不知岁月长");
blog.setCreateTime(new Date());
blog.setView(5392);
mapper.inSert(blog);
blog.setId(IDutils.getID());
blog.setTitle("数据库底层原理");
blog.setCreateTime(new Date());
blog.setView(5645);
mapper.inSert(blog);
blog.setId(IDutils.getID());
blog.setTitle("JVM");
blog.setCreateTime(new Date());
blog.setView(4984);
mapper.inSert(blog);
sqlSession.close();
}
@Test
public void QuereIf(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
BlogMapper mapper = sqlSession.getMapper(BlogMapper.class);
Map<String, String> map = new HashMap<>();
map.put("title","数据库底层原理");
List<Blog> blogs = mapper.quereBlog(map);
for (Blog blog : blogs) {
System.out.println(blog);
}
map.clear();
sqlSession.close();
}
}