SSM框架
MyBatis(从入门到放弃)一个ORM框架,属于DAO层,负责和数据库进行交互
1.新建个数据库
package com.pandawork.common.entity.Board;
import com.pandawork.core.common.entity.AbstractEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Table(name = "t_board_out")
@Entity
public class Board extends AbstractEntity{
@Id
public Integer id;
@Column(name="content")
private String content;
@Column(name ="year")
private int year;
@Column(name ="month")
private int month;
@Column(name ="day")
private int day;
@Column(name="state")
private String state;
@Column(name="title")
private String title;
public Board() {
}
public Integer getId() {
return id;
}
@Override
public void setId(Integer id) {
this.id = id;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
public int getMonth() {
return month;
}
public void setMonth(int month) {
this.month = month;
}
public int getDay() {
return day;
}
public void setDay(int day) {
this.day = day;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@Override
public String toString() {
return "Board{" +
"id=" + id +
", content='" + content + '\'' +
", year=" + year +
", month=" + month +
", day=" + day +
", state='" + state + '\'' +
", title='" + title + '\'' +
'}';
}
}
新建一个映射的配置表(eg:BoardMapper.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.pandawork.mapper.Board.BoardMapper">
<resultMap id="board" type="com.pandawork.common.entity.Board" >
<id property="id" column="id"/>
<result property="content" column="content"/>
<result property="year" column="year"/>
<result property="month" column="month"/>
<result property="day" column="day"/>
<result property="state" column="state"/>
<result property="title" column="title"/>
</resultMap>
<select id="queryById" resultMap="board" >
SELECT *
FROM `t_board_out`
WHERE `id` = #{id}
</select>
<select id="queryByKeyword" resultMap="board">
SELECT *
FROM `t_board_out`
WHERE `content` LIKE '%${keyword}%'
</select>
<select id="queryByTitle" resultType="board">
SELECT *
FROM `t_board_out`
WHERE `title` = #{title}
</select>
<insert id="newBoard">
INSERT INTO `t_board_out`
(`content`,`year`,`month`,`day`,`state`,`title`)
VALUES ( #{board.content},#{board.year},#{board.month},#{board.day},#{board.state},#{board.state})
</insert>
<update id="update">
UPDATE `t_board_out`
SET
`content` = #{board.content},
`year` = #{board.year},
`month` = #{board.month},
`state` = #{board.state},
`title` = #{board.title},
`day` = #{board.day}
WHERE `id` = #{board.id}
</update>
<delete id="delById">
DELETE FROM `t_board_out`
WHERE `id` = #{id}
</delete>
<select id="listAll" resultMap="board">
SELECT *
FROM `t_board_out`
</select>
</mapper>
这里的DOCTYPE,是mapper,映射。
namespace写的是这个配置表的地址。
mapper.xml 是对 mapper.java 接口的实现。他们之间的关联通过mapper.xml 中的<mapper ></mapper> 标签中的namespace属性实现绑定
映射管理器resultMap:映射管理器,是Mybatis中最强大的工具,使用其可以进行实体类之间的关系,并管理结果和实体类间的映射关系
需要配置的属性:<resultMap id=" " type=" "></resutlMap> id=" ">>>表示这个映射管理器的唯一标识,外部通过该值引用; type = " ">>> 表示需要映射的实体类;
需要配置的参数:<id column = " " property= " " /> <id>标签指的是:结果集中结果唯一的列【column】 和 实体属性【property】的映射关系,注意:<id>标签管理的列未必是主键列,需要根据具体需求指定;
<result column= " " property=" " /> <result>标签指的是:结果集中普通列【column】 和 实体属性【property】的映射关系;
修改数据库名,密码等