1.pom.xml 文件中引入相关依赖
<dependencies>
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<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>5.1.47</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.10.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.1.10.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.4</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
<scope>provided</scope>
</dependency>
</dependencies>
2.解决maven资源过滤问题
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
3.编写实体类
Grade
@Data
@Component
@NoArgsConstructor
@AllArgsConstructor
public class Grade {
private Integer gid;
private String gname;
}
Student
@Data
@Component
@NoArgsConstructor
@AllArgsConstructor
public class Student {
private Integer sid;
private String sname;
private String english;
private String address;
private String math;
private Integer gid;
}
Users
@Data
@Component
@NoArgsConstructor
@AllArgsConstructor
public class Users {
private Integer uid;
private String uname;
private String upwd;
}
4.编写接口
GradeMapper
public interface GradeMapper {
//增
int addGrade(Grade grade);
//删
int deleteGrade(@Param("id") int id);
//改
int updateGrade(Grade grade);
//根据ID查单条数据
Grade selectGradeById(@Param("id") int id);
//查全部数据
List<Grade> selectGradeAll();
}
StudentMapper
public interface StudentMapper {
//增
int addStudent(Student student);
//删
int deleteStudent(@Param("id") int id);
//改
int updateStudent(Student student);
//根据ID查单条数据
Student selectStudentById(@Param("id") int id);
//查全部数据
List<Student> selectStudentAll();
}
UsersMapper
public interface UsersMapper {
//增
int addUsers(Users users);
//删
int deleteUsers(@Param("id") int id);
//改
int updateUsers(Users users);
//根据ID查单条数据
Users selectUsersById(@Param("id") int id);
//查全部数据
List<Users> selectUsersAll();
}
6.编写核心配置文件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>
<typeAliases>
<typeAlias type="com.summer.pojo.Grade" alias="Grade"/>
<typeAlias type="com.summer.pojo.Student" alias="Student"/>
<typeAlias type="com.summer.pojo.Users" alias="Users"/>
</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://localhost:3306/SpringStudy"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper class="com.summer.mapper.GradeMapper"/>
<mapper class="com.summer.mapper.StudentMapper"/>
<mapper class="com.summer.mapper.UsersMapper"/>
</mappers>
</configuration>
7.编写mapper 的xml 文件
GradeMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.summer.mapper.GradeMapper">
<insert id="addGrade" parameterType="Grade">
insert into grade (gid, gname) values (#{gid},#{gname});
</insert>
<delete id="deleteGrade" >
delete from grade where id = #{id};
</delete>
<update id="updateGrade" parameterType="Grade">
update grade set gname = #{gname} where gid = #{gid}
</update>
<select id="selectGradeById" resultType="Grade">
select * from grade where gid = #{id};
</select>
<select id="selectGradeAll" resultType="Grade">
SELECT * from grade;
</select>
</mapper>
StudentMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.summer.mapper.StudentMapper">
<insert id="addStudent" parameterType="Student">
insert into student(sid,sname,english,math,address,gid)
values (#{sid},#{sname},#{english},#{math},#{address},#{gid})
</insert>
<select id="deleteStudent" >
delete from student where sid = #{id}
</select>
<update id="updateStudent" parameterType="Student">
update student set
sname=#{sname},
english=#{english},
math=#{math},
address=#{address},
gid = #{gid}
where sid = #{sid}
</update>
<select id="selectStudentById" resultType="Student">
select * from student where id = #{id}
</select>
<select id="selectStudentAll" resultType="Student">
select * from student;
</select>
</mapper>
UsersMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.summer.mapper.UsersMapper">
<insert id="addUsers" parameterType="Users">
insert into users(uid,uname,upwd) values (#{uid},#{uname},#{upwd})
</insert>
<delete id="deleteUsers">
delete from users where uid = #{id}
</delete>
<update id="updateUsers" parameterType="Users">
update users set
uname = #{uname},
upwd = #{upwd}
where uid = #{uid};
</update>
<select id="selectUsersById" resultType="Users">
select * from users where uid = #{id}
</select>
<select id="selectUsersAll" resultType="Users">
select * from users;
</select>
</mapper>
8.测试
@Test
public void test01() throws IOException {
String res = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(res);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession(true);
UsersMapper mapper = sqlSession.getMapper(UsersMapper.class);
int summer1 = mapper.updateUsers(new Users(2, "summer", "200"));
System.out.println(summer1);
List<Users> users = mapper.selectUsersAll();
System.out.println(users);
}
今天遇到的问题反思:
- mybatis-config.xml 核心配置文件
<mappers>
<mapper class="com.summer.mapper.GradeMapper"/>
</mappers>
写成
<mappers>
<mapper class="com.summer.mapper.GradeMapper.xml"/>
</mappers>
运行报错!!!
2.编写mapper映射文件的时候
<update id="updateUsers" parameterType="Users">
update users set
uname = #{uname},
upwd = #{upwd}
where uid = #{uid};
</update>
在 upwd = #{upwd}后多加一个 , 导致报错。
3.insert
<insert id="addUsers" parameterType="Users">
insert into users(uid,uname,upwd) values (#{uid},#{uname},#{upwd})
</insert>
sql语句很正常的是 users(uid,uname,upwd) 。()中的内容不要加 ' '。










网友评论