mavenRepositroy
CREATE TABLE `user`(
`id` INT(20) NOT NULL PRIMARY KEY,
`name` VARCHAR(30) DEFAULT NULL,
`pwd` VARCHAR(30) DEFAULT NULL
)ENGINE=INNODB CHARSET=utf8;
INSERT INTO `user`(`id`,`name`,`pwd`) VALUES
(1,'lix','123456'),
(2,'admin','123456'),
(3,'root','123456')
1、添加applicationContext表头
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
4.2、添加mybatis配置文件-----表头:
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
4.3、添加database.properties文件
jdbc.driver=com.mysql.cj.jdbc.Driver
#如果使用的是MySQL8.0+ ,需要增加一个时区的配置 &serverTime=Asia/Shanghai
jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSL=true&useUnicode=true&characterEncoding=utf-8
jdbc.username=******
jdbc.password=******
4.4、添加mapper表头
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
4.5、编写dao层-----
package com.lix.dao;
import com.lix.pojo.Books;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface BookMapper {
int addBook(Books books);
int deleteBookById(@Param("bookId") int id);
int updateBook(Books books);
Books queryBookById(@Param("bookId") int id);
List
}
实现
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
insert into ssmbuild.books (bookName,bookCounts,detail)
values (#{bookName},#{bookCounts},#{detail});
delete from ssmbuild.books where bookID = #{bookId}
update ssmbuild.books
set bookName=#{bookName},bookCounts=#{bookCounts},detail=#{detail}
where bookID=#{bookID}
4.6、编写service层------
package com.lix.service;
import com.lix.pojo.Books;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface BookService {
int addBook(Books books);
int deleteBookById(int id);
int updateBook(Books books);
Books queryBookById(int id);
List
}
实现
package com.lix.service;
import com.lix.dao.BookMapper;
import com.lix.pojo.Books;
import java.util.List;
public class BookServiceImpl implements BookService {
private BookMapper bookMapper;
public void setBookMapper(BookMapper bookMapper) {
this.bookMapper = bookMapper;
}
public int addBook(Books books) {
return bookMapper.addBook(books);
}
public int deleteBookById(int id) {
return bookMapper.deleteBookById(id);
}
public int updateBook(Books books) {
return bookMapper.updateBook(books);
}
public Books queryBookById(int id) {
return bookMapper.queryBookById(id);
}
public List
return bookMapper.queryAllBook();
}
}
------mybatis层完结
------spring层开始-----
5.spring整合dao层
xmlns:cOntext="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">
6.spring整合service层
xmlns:cOntext="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">
7.spring整合controller层
xmlns:cOntext="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
------项目框架搭建完成-----
报错:
Could not find resource org/mybatis/example/mybatis-config.xml
解决:纯配置文件路径错误,检查路径即可
报错:
org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource
解决:在pom.xml中加入以下配置
#将等级为DEBUG的日志信息输出到console和file这两个目的地,console和file的定义在下面的代码
log4j.rootLogger=DEBUG,console,file
#控制台输出的相关设置
log4j.appender.cOnsole= org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.Threshold = Debug
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.COnversionPattern= [%c]-%m%n
#文件输出的相关设置
log4j.appender.file = org.apache.log4j.RollingFileAppender
log4j.appender.file.File = ./log/lix.log
log4j.appender.file.MaxFileSize = 10mb
log4j.appender.file.Threshold = DEBUG
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.COnversionPattern= [%p][%d{yy-mm-dd}][%c]%m%n
#日志输出级别
log4j.logger.org.mybatis = DEBUG
log4j.logger.java.sql = DEBUG
log4j.logger.java.sql.Statement = DEBUG
log4j.logger.java.sql.ResultSet = DEBUG
log4j.logger.java.sql.PreparedStatement = DEBUG
package com.lix.dao;
import com.lix.pojo.User;
import org.apache.ibatis.annotations.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* program mybatis-01
* @author lix
*/
public interface UserMapper {
/**
* getUsers
* @return
*/
@Select("select * from user")
List
/**
*
* getUserById
* @param id
* @param name
* @return
* 方法存在多个参数,
*/
@Select("select * from user where id=#{id}")
User getUserById(@Param("id") int id, @Param("name") String name);
/**
* addUser
* @param map
* @return
*/
@Insert("insert into user(id,name,pwd) values(#{id},#{name},#{pwd})")
int addUser(Map
/**
* updateUser
* @param map
* @return
*/
@Update("update user set name = #{name},pwd=#{pwd} where id = #{id}")
int updateUser(Map
/**
* deleteUse
* @param id
* @return
*/
@Delete("delete from user where id = #{id}")
int deleteUse(@Param("id") int id);
}
【注意:我们必须要把核心配置类(UserMapper.java)绑定到核心配置文件中(mybatis-config.xml)】
关于@Param()注解
Lombok
Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.
Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.
Project Lombok是一个java库,它可以自动插入到你的编辑器和构建工具中,为您的java注入新的活力。
不要再编写其他getter或equals方法,有了一个注释,类就有了功能齐全的构建器、自动化日志变量等等。
package com.lix.dao;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* program mybatis-02
* @author lix
* description 加在类上所有属性都加,加在属性上,只有属性加
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private int id;
private String name;
private String pwd;
}
4.1、按照查询嵌套处理