项目主体结构:
首先我在mybatis-config.xml中定义了别名,这样就不用每次都写长长的完整路径了。
<!--扫描该包下实体类,我的是Blog-->
<typeAliases>
<package name="com.mybatis.pojo" />
</typeAliases>
我的sql语句是从SQLyog中生成粘贴过来的。
查询数据(根据ID查询):
BlogMapper.xml
<select id="selectBlog" resultType="Blog" parameterType="int">
select * from blog where id = #{id}
</select>
BlogMapper.java
public interface BlogMapper {
Blog selectBlog(Integer id); }
BlogMapperTest.java(测试类)
@Test
public void testSelectBlog() {
SqlSession session = MyBatisUtil.getSqlSession();
BlogMapper blogMapper = session.getMapper(BlogMapper.class);
Blog blog = blogMapper.selectBlog(2);
System.out.println(blog);
session.close();
}
添加数据:
BlogMapper.xml
<!-- useGeneratedKeys="true" keyProperty="id" 获取自增ID -->
<insert id="insertBlog" parameterType="Blog" useGeneratedKeys="true" keyProperty="id">
INSERT INTO `blog`(
`title`,
`authorId`,
`state`,
`featured`,
`style`
)
VALUES (
#{title},
#{authorId},
#{state},
#{featured},
#{style}
);
</insert>
BlogMapper.java
public interface BlogMapper {
int insertBlog(Blog blog);
}
需要在实体类添加一个无参的方法,在里面赋值(Blog.java)
public Blog() {
super();
this.title = "天津";
this.authorId = 6;
this.state = "NO ACTIVE";
this.featured =false;
this.style = "red";
}
BlogMapperTest.java(测试类)
@Test
public void insertBlog() {
SqlSession session = MyBatisUtil.getSqlSession();
BlogMapper blogMapper = session.getMapper(BlogMapper.class);
Blog blog=new Blog();
int inblog = blogMapper.insertBlog(blog);
session.commit();//一定要有
session.close();
System.out.println(blog);
System.out.println("插入"+inblog+"条记录");
}
修改数据(根据ID修改):
BlogMapper.xml
<update id="updateBlog" parameterType="Blog">
UPDATE `blog`
SET
`title` = #{title},
`authorId` = #{authorId},
`state` = #{state},
`featured` = #{featured},
`style` = #{style}
WHERE `id` = #{id}
</update>
BlogMapper.java
public interface BlogMapper {
int updateBlog(Blog blog);
}
BlogMapperTest.java(测试类)
@Test
public void updateBlog() {
SqlSession session = MyBatisUtil.getSqlSession();
BlogMapper blogMapper = session.getMapper(BlogMapper.class);
//先查询,后在基础上修改
Blog blog=blogMapper.selectBlog(35);
//Blog blog=new Blog();
blog.setId(35);
blog.setTitle("内蒙古");
// blog.setAuthorId(7);
// blog.setState("NO ACTIVE");
// blog.setFeatured(false);
// blog.setStyle("blue");
int upblog = blogMapper.updateBlog(blog);
session.commit();
session.close();
System.out.println(blog);
System.out.println("修改了"+upblog+"条记录");
}
删除数据(根据ID删除):
BlogMapper.xml
<delete id="deleteBlog" parameterType="int">
DELETE
FROM `blog`
WHERE `id` =#{id}
</delete>
BlogMapper.java
public interface BlogMapper {
int deleteBlog(Integer id);
}
BlogMapperTest.java(测试类)
@Test
public void deleteBlog() {
SqlSession session = MyBatisUtil.getSqlSession();
BlogMapper blogMapper = session.getMapper(BlogMapper.class);
int deblog = blogMapper.deleteBlog(36);
session.commit();
session.close();
System.out.println("删除"+deblog+"条记录");
}