打开SQLyog,测试连接,测试成功后创建数据库
这里需要注意箭头所指的两栏分别选择utf8和utf8_general_ci,选择完成后点击创建
可以看到数据库创建成功,之后我们在数据库下创建表
这里需要注意字符集和核对两栏分别选择utf8和utf8_general_ci,引擎选择InnoDB,表名称可以按照自己的意愿来命名
填入我们创建的表中的一些信息,点击保存,表创建完成
当然这是使用SQLyog来进行数据库的创建,图形化界面使得数据库的创建更加便捷,当然我们也可以使用SQL语句来进行创建
CREATE TABLE `books` (
`bookID` int(10) NOT NULL AUTO_INCREMENT COMMENT '书籍ID',
`bookName` varchar(100) NOT NULL COMMENT '书籍名字',
`bookCounts` int(20) NOT NULL COMMENT '书籍数量',
`detail` varchar(200) NOT NULL COMMENT '描述',
KEY `bookID` (`bookID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
我们在已经创建好的表中添加一些书籍的信息
书籍信息添加完成后点击刷新也就是箭头所指的按钮
至此,第1步数据库的搭建完成
这里需要创建Maven的Web项目,所以在创建的时候需要选择模板,关于Maven的Web项目的创建Maven普通项目的创建以及相关的注意事项在我之前的两篇博客《MyBatis框架的使用3(代码的编写)》《SpringMVC的简单讲解》中都有讲解,读者自行查阅
创建完成的项目如下图所示
项目创建完成后就需要导包、连接数据库以及资源过滤问题
1.连接数据库
在测试连接成功后点击箭头所指的按钮,在里面选择我们之前创建好的数据库
选择我们之前创建好的叫做ssmbuild的数据库,之后点击OK,数据库连接完成
在IDE中再次确认我们之前创建的数据库没有问题
数据库连接完成,之后就该导入我们在编写项目时必须的一些包
我们先导入一些开始时候需要的包,后面的包在用到的时候我们在进行添加
mysql
mysql-connector-java
5.1.47
org.mybatis
mybatis
3.4.6
将上面的依赖写入到pom.xml文件的dependencies标签中,写入完成后查看项目结构
可以看到两个包导入完成,导入完成后就可以编写类了
目录结构如图所示
在实体类pojo的包中新建一个Books类,把每本书都作为一个对象,用Books类来创建书的对象
package com.westos.pojo;
public class Books {
private int bookID;
private String bookName;
private int bookCounts;
private String detail;
public Books() {
}
public Books(int bookID, String bookName, int bookCounts, String detail) {
this.bookID = bookID;
this.bookName = bookName;
this.bookCounts = bookCounts;
this.detail = detail;
}
public int getBookID() {
return bookID;
}
public void setBookID(int bookID) {
this.bookID = bookID;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public int getBookCounts() {
return bookCounts;
}
public void setBookCounts(int bookCounts) {
this.bookCounts = bookCounts;
}
public String getDetail() {
return detail;
}
public void setDetail(String detail) {
this.detail = detail;
}
@Override
public String toString() {
return "books{" +
"bookID=" + bookID +
", bookName='" + bookName + '\'' +
", bookCounts=" + bookCounts +
", detail='" + detail + '\'' +
'}';
}
}
其实要编写上面这段代码非常简单,使用ALT+Inster键查看代码结构,在里面可以选择现成的有参构造、无参构造、get方法、set方法以及toString方法,选中后IDE自动生成,所以这段代码看起来非常多,但是使用快捷键后会编写起来会非常简单
在编写完pojo层以后实体类层建立完毕,我们就需要编写dao层了,dao层主要负责接收上一层的请求来对数据库进行相关操作
在dao包下,我们必须先要创建一个接口,名字就是BookDao
接口中的内容中就是通过外界能够对数据库进行的一些操作
package com.westos.dao;
import com.westos.pojo.Books;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface BookDao {
//增加一本Books
int addBook(Books books);
//根据id删除Books
int deleteBookByID(@Param("bookID") int id);
//更新Books
int updateBook(Books books);
//根据id查询Books
Books queryBookByID(@Param("bookID") int id);
//查看全部book
List queryAllBook();
}
在写完dao层的接口代码后,我们就需要写一个和MyBatis相关的配置文件
因为我们使用Maven来构建项目,所以在之前的pom.xml中导入了mybatis的依赖后,我们还需要在resources目录下的MyBatis的配置文件中写入下面的代码,这段代码在官网上直接复制粘贴即可
因为environments
标签里面的内容IDE会自动生成,所以我们可以删除它
在上面的配置文件代码中我们还需要添加别名,也就是
注意,这个标签和
标签同级,这样我们的实体类就都会有别名
添加完别名后我们就需要修改
标签后面的 resource后面的路径,这个路径就是dao层下面的xml映射文件的路径
dao层下面的xml映射文件的头部和resources目录下的MyBatis的配置文件的头部一样,只需要做一点改动
dao层下面的xml映射文件中的代码为
这样dao层下面的xml映射文件和接口就已经关联上了
关联上后将resources目录下的MyBatis的配置文件补充完整
至此,MyBatis的配置文件配置完成,如果我们有新的xml映射文件只需要在resources目录下的MyBatis的配置文件中的
标签中添加新的映射即可
然后我们就可以在dao层下的xml映射文件中编写语句来完成对接口中功能的实现
insert into ssmbuild.books(bookID, bookName, bookCounts, detail) values
(#{bookID}, #{bookName}, #{bookCounts}, #{detail})
delete from ssmbuild.books where bookID = #{bookID}
update ssmbuild.books
set bookName = #{bookName}, bookCounts = #{bookCounts}, detail = #{detail}
where bookID = #{bookID}
在编辑完dao层的xml映射文件后,dao层结束,这里需要注意一些语句的细节
之后我们需要编辑service层
因为这个项目比较简单,service层的功能也就是增删改查,所以service层的功能接口我们可以直接复制dao层的BookDao接口中的功能
下面是代码
package com.westos.service;
import com.westos.pojo.Books;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface BookService {
//增加一本Books
int addBook(Books books);
//根据id删除Books
int deleteBookByID(@Param("bookID") int id);
//更新Books
int updateBook(Books books);
//根据id查询Books
Books queryBookByID(@Param("bookID") int id);
//查看全部book
List queryAllBook();
}
在编写完接口后我们在service包下继续创建这个接口的实现类
因为dao层就是接受service层发送过来的请求区对数据库进行操作,所以我们在这个实现类中需要建立和dao层xml映射文件的关联
在BookServiceImpl中添加代码
private BookDao bookDao;
//为了方便注入,我们需要设置一个set方法
public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao;
}
添加这段代码后我们就可以调用dao层的东西
BookServiceImpl类的完整代码为
package com.westos.service;
import com.westos.dao.BookDao;
import com.westos.pojo.Books;
import java.util.List;
public class BookServiceImpl implements BookService{
private BookDao bookDao;
//为了方便注入,我们需要设置一个set方法
public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao;
}
@Override
public int addBook(Books books) {
//如果有其他的业务,我们添加在相应的方法中即可,因为这个项目比较简单,所以业务只有一句话
return bookDao.addBook(books);
}
@Override
public int deleteBookByID(int id) {
return bookDao.deleteBookByID(id);
}
@Override
public int updateBook(Books books) {
return bookDao.updateBook(books);
}
@Override
public Books queryBookByID(int id) {
return bookDao.queryBookByID(id);
}
@Override
public List queryAllBook() {
return bookDao.queryAllBook();
}
}
至此,service层也编写完成,当然这篇博客讲到的主要是Mybatis,可看做对Mybatis的回顾,关于SpringMVC的整合,我后续会再写一篇博客