可看以往文章JDBC操作数据库实现增删改查
一、数据库中建表
1、classinfo表
2、student表
二、后台功能
1、创建mybatis.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>
<package name="src.main.java.domain"></package>
</typeAliases>
<!--数据库环境的配置-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<!--数据源-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/school2"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</dataSource>
</environment>
</environments>
<!--文件路径配置-->
<mappers>
<mapper resource="mapper/UserMapper.xml"></mapper>
</mappers>
</configuration>
2、构建学生表的实体类
package domain;
public class User {
private String studentid;
private String studentName;
private String studentSex;
private String studentPhone;
private String studentAddress;
private int studentAge;
private int stuclassid;
private String className;
public String getStudentid() {
return studentid;
}
public void setStudentid(String studentid) {
this.studentid = studentid;
}
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public String getStudentSex() {
return studentSex;
}
public void setStudentSex(String studentSex) {
this.studentSex = studentSex;
}
public String getStudentPhone() {
return studentPhone;
}
public void setStudentPhone(String studentPhone) {
this.studentPhone = studentPhone;
}
public String getStudentAddress() {
return studentAddress;
}
public void setStudentAddress(String studentAddress) {
this.studentAddress = studentAddress;
}
public int getStudentAge() {
return studentAge;
}
public void setStudentAge(int studentAge) {
this.studentAge = studentAge;
}
public int getStuclassid() {
return stuclassid;
}
public void setStuclassid(int stuclassid) {
this.stuclassid = stuclassid;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
// 创建有参的构造方法
public User(String studentid, String studentName, String studentSex, String studentPhone, String studentAddress, int studentAge, int stuclassid, String className) {
this.studentid = studentid;
this.studentName = studentName;
this.studentSex = studentSex;
this.studentPhone = studentPhone;
this.studentAddress = studentAddress;
this.studentAge = studentAge;
this.stuclassid = stuclassid;
this.className = className;
}
public User(String studentid, String studentName, String studentSex, String studentPhone, String studentAddress, int studentAge, int stuclassid) {
this.studentid = studentid;
this.studentName = studentName;
this.studentSex = studentSex;
this.studentPhone = studentPhone;
this.studentAddress = studentAddress;
this.studentAge = studentAge;
this.stuclassid = stuclassid;
}
// 创造无参的构造方法
public User() {
}
}
3、接口UserMapper
package mapper;
import domain.User;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
public interface UserMapper {
// 查询所有用户
public List<User> findAllUser();
// 通过id查找用户
public User findUserById(String id);
// 通过姓名模糊查询查找用户
public List<User> findUserByName(String name);
// Map集合
public List<User> findUserByMap(Map<String,Object> map);
// 通过年龄查找用户 @Param("age")指代xml配置文件中的studentAge>#{age}
public List<User> findUserByAge(@Param("age") int age);
// 修改用户
public int update(User user);
// 删除用户
public int delete(String id);
// 添加用户
public int insert(User user);
}
4、创建与接口同名的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="mapper.UserMapper">
<resultMap id="stulist" type="domain.User">
<result property="studentid" column="studentid"></result>
<result property="studentName" column="studentName"></result>
<result property="studentSex" column="studentSex"></result>
<result property="studentPhone" column="studentPhone"></result>
<result property="studentAddress" column="studentAddress"></result>
<result property="studentAge" column="studentAge"></result>
<result property="stuclassid" column="stuclassid"></result>
<result property="className" column="className"></result>
</resultMap>
<!--查找所有用户-->
<select id="findAllUser" resultMap="stulist">
SELECT s.*,c.className FROM student s,classinfo c WHERE s.stuclassid=c.classid
</select>
<!--通过id查找用户-->
<!--resultType结果类型 parameterType参数类型-->
<select id="findUserById" resultType="domain.User" parameterType="String">
SELECT * from student WHERE studentid=#{studentid}
</select>
<!--通过姓名进行模糊查询用户-->
<select id="findUserByName" resultType="domain.User" parameterType="String">
SELECT * FROM student WHERE studentName LIKE concat(concat('%',#{studentName}),'%')
</select>
<!--通过map集合查询用户-->
<select id="findUserByMap" resultType="domain.User" parameterType="Map">
SELECT * FROM student WHERE studentName LIKE concat(concat('%',#{studentName}),'%') AND studentAge>#{studentAge}
</select>
<!--通过年龄查询用户-->
<select id="findUserByAge" resultType="domain.User" parameterType="int">
SELECT * FROM student WHERE studentAge>#{age}
</select>
<!--修改用户信息-->
<update id="update" parameterType="domain.User">
UPDATE student SET studentName=#{studentName},studentSex=#{studentSex} WHERE studentid=#{studentid}
</update>
<!--删除用户-->
<update id="delete" parameterType="String">
DELETE FROM student WHERE studentid=#{studentid}
</update>
<!--添加用户-->
<update id="insert" parameterType="domain.User">
INSERT into student VALUES (#{studentid},#{studentName},#{studentSex},#{studentPhone},#{studentAddress},#{studentAge},#{stuclassid})
</update>
</mapper>
5、测试类
package test;
import org.apache.ibatis.session.SqlSession;
import domain.User;
import mapper.UserMapper;
import util.MybatisUtil;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Test {
public static void main(String[] args) {
// test01();
// test02();
// test03();
// test04();
// test05();
// test06();
// test07();
test08();
}
// 添加用户
private static void test08() {
SqlSession session = MybatisUtil.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
int insert = mapper.insert(new User("s123456", "朱怀昌", "男", "12321432", "河南南阳", 22, 3));
if (insert>0){
System.out.println("添加成功");
}
// 提交之后事物才会生效
session.commit();
}
// 删除用户
private static void test07() {
SqlSession session = MybatisUtil.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
User user = mapper.findUserById("s123451");
if (user!=null){
int delete = mapper.delete("s123451");
if (delete>0){
System.out.println("删除成功");
}
}
// 提交事物之后才会生效
session.commit();
}
// 修改用户
private static void test06() {
SqlSession session = MybatisUtil.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
User user = mapper.findUserById("s123453");
user.setStudentName("洋葱");
user.setStudentSex("女");
int update = session.getMapper(UserMapper.class).update(user);
if (update>0){
System.out.println("修改成功");
}
// 添加、修改、删除的操作都会产生事物,需要提交之后才会生效
session.commit();
}
// 通过年龄查询用户
private static void test05() {
SqlSession session = MybatisUtil.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
List<User> lists = mapper.findUserByAge(20);
for (User list:lists){
System.out.println(list.getStudentName());
}
}
// 通过map集合查询用户
private static void test04() {
SqlSession session = MybatisUtil.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("studentName","博");
map.put("studentAge",20);
List<User> lists = mapper.findUserByMap(map);
for (User list:lists){
System.out.println(list.getStudentName());
}
}
// 通过姓名的模糊查询查找用户
private static void test03() {
SqlSession session = MybatisUtil.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
List<User> lists = mapper.findUserByName("博");
for (User list:lists){
System.out.println(list.getStudentName());
}
}
// 通过id查找用户
private static void test02() {
SqlSession session = MybatisUtil.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
User user = mapper.findUserById("s123455");
System.out.println(user.getStudentName());
}
// 查询所有的用户
private static void test01() {
SqlSession session = MybatisUtil.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
List<User> lists = mapper.findAllUser();
for (User list:lists){
System.out.println(list.getStudentName());
}
}
}