本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问。
添加依赖Jar包
这部分内容需要以下Jar包支持
mysql-connector:MySQL数据库连接驱动,架起服务端与数据库沟通的桥梁;
MyBatis:一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架;
log4j:Apache的开源项目,一个功能强大的日志组件,提供方便的日志记录;
修改后的pom.xml文件如下所示:
4.0.0
com.lock
LockMIS
war
0.0.1-SNAPSHOT
LockMIS Maven Webapp
http://maven.apache.org
4.0.7.RELEASE
junit
junit
4.9
test
org.springframework
spring-context
${org.springframework.version}
org.aspectj
aspectjweaver
1.8.9
cglib
cglib
3.2.4
org.apache.logging.log4j
log4j-core
2.6.2
mysql
mysql-connector-java
5.1.31
org.mybatis
mybatis
3.2.7
LockMIS
View Code
更新项目后,可以看到新增的Maven依赖Jar包
MySQL建表并填充数据
在MySQL中建立ConfigItem对象bean对应的数据表t_g_configitem,并填充对应数据
CREATE TABLE`t_g_configitem` (
`ConfigItemID`int(11) NOT NULL,
`IDCode`varchar(40) NOT NULL,
`Label`varchar(40) DEFAULT NULL,
`ItemValue`varchar(500) DEFAULT NULL,
`Note`varchar(1000) DEFAULT NULL,
`DataTypeID`int(11) DEFAULT NULL,PRIMARY KEY(`ConfigItemID`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
View Code
数据库访问实现
要实现数据库访问,肯定少不了数据库连接这一环节。
在src/main/resources目录下新建一个config.properties文件来保存数据库连接信息
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/scland
username=root
password=root
View Code
单单有一个数据库连接配置文件可不行,还得配置MyBatis的运行环境,在resources目录下新建一个MyBatisConfig.xml文件
/p>
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
View Code
在Util目录下新建一个通用类MyBatisUtil,实现数据库连接并获取活动SqlSession。
packagecom.lock.base.Util;importjava.io.InputStream;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis.session.SqlSessionFactoryBuilder;public abstract classMyBatisUtil {private static SqlSessionFactory factory=null;public staticSqlSessionFactory getSqlSessionFactory(){if(factory==null){//获得环境配置文件流
InputStream config = MyBatisUtil.class.getClassLoader().getResourceAsStream("MyBatisConfig.xml");//创建sql会话工厂
factory = newSqlSessionFactoryBuilder().build(config);
}returnfactory;
}//获得会话
public staticSqlSession getSession(){return getSqlSessionFactory().openSession(true);
}/*** 获得得sql会话
*@paramisAutoCommit 是否自动提交,如果为false则需要sqlSession.commit();rollback();
*@returnsql会话*/
public static SqlSession getSession(booleanisAutoCommit){returngetSqlSessionFactory().openSession(isAutoCommit);
}
}
View Code
修改IConfigItemDao接口,添加getAllConfigItems方法
packagecom.lock.base.app.builder.daointerface;importjava.util.List;importcom.lock.base.app.builder.bean.ConfigItem;public interfaceIConfigItemDao {public ListgetAllConfigItems();publicBoolean updateConfigItem(ConfigItem configItem);
}
View Code
修改ConfigItem实体bean对应的映射文件ConfigItemMapper.xml
select * from t_g_configitem
View Code
在ConfigItemDaoImpl类实现IConfigItemDao接口的getAllConfigItems方法
packagecom.lock.base.app.builder.daoimpl;importjava.util.List;importorg.apache.ibatis.session.SqlSession;importorg.springframework.stereotype.Component;importorg.springframework.stereotype.Repository;importcom.lock.base.Util.MyBatisUtil;importcom.lock.base.app.builder.bean.ConfigItem;importcom.lock.base.app.builder.daointerface.IConfigItemDao;
@Repositorypublic class ConfigItemDaoImpl implementsIConfigItemDao {
@Overridepublic ListgetAllConfigItems() {//获得会话对象
SqlSession session=MyBatisUtil.getSession();try{//通过MyBatis实现接口BookTypeDAO,返回实例
IConfigItemDao configItemDao = session.getMapper(IConfigItemDao.class);returnconfigItemDao.getAllConfigItems();
}finally{
session.close();
}
}
@OverridepublicBoolean updateConfigItem(ConfigItem configItem) {//TODO Auto-generated method stub
return null;
}
}
View Code
上述步骤完成后,就可以编写测试代码进行测试验证了
packagecom.lock;import static org.junit.Assert.*;importjava.util.List;importorg.junit.BeforeClass;importorg.junit.Test;importorg.springframework.context.ApplicationContext;importorg.springframework.context.annotation.AnnotationConfigApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;importcom.lock.base.app.builder.bean.ConfigItem;importcom.lock.base.app.builder.daoimpl.ConfigItemDaoImpl;importcom.lock.base.app.builder.daointerface.IConfigItemDao;importcom.lock.base.app.builder.service.ConfigItemService;importcom.lock.base.config.AppConfig;public classBaseTest {staticIConfigItemDao configItemDao;
@BeforeClasspublic static voidbeforeClass()
{
configItemDao= newConfigItemDaoImpl();
}
@Testpublic voidtest4() {
List configItems =configItemDao.getAllConfigItems();for(ConfigItem configItem : configItems) {
System.out.println(configItem.getIdcode());
}
assertNotNull(configItems);
}
}
View Code
执行Maven编译,确认无误后,运行测试
对比建表数据,测试代码的运行结果无误。
小结
本文在Java Web学习系列——Maven Web项目中集成使用Spring基础上,添加了MySQL,MyBatis等依赖Jar包,基于此实现了连接MySQL数据库,并顺利读取数据库中的表数据。
参考:
https://www.cnblogs.com/iflytek/p/7096481.html
https://www.cnblogs.com/xdp-gacl/p/4271627.html
https://blog.csdn.net/zhshulin/article/details/37956105
https://blog.csdn.net/zhshulin/article/details/23912615
https://blog.csdn.net/lutianfeiml/article/details/51864160