mavenweb+mysql_Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问...

本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问。

添加依赖Jar包

这部分内容需要以下Jar包支持

mysql-connector:MySQL数据库连接驱动,架起服务端与数据库沟通的桥梁;

MyBatis:一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架;

log4j:Apache的开源项目,一个功能强大的日志组件,提供方便的日志记录;

修改后的pom.xml文件如下所示:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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包

523d6600da6f40e8df85b57891bc76b8.png

MySQL建表并填充数据

在MySQL中建立ConfigItem对象bean对应的数据表t_g_configitem,并填充对应数据

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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

73059bf080c4e1302ac7bce884096251.png

数据库访问实现

要实现数据库访问,肯定少不了数据库连接这一环节。

在src/main/resources目录下新建一个config.properties文件来保存数据库连接信息

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/scland

username=root

password=root

View Code

单单有一个数据库连接配置文件可不行,还得配置MyBatis的运行环境,在resources目录下新建一个MyBatisConfig.xml文件

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

/p>

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

View Code

在Util目录下新建一个通用类MyBatisUtil,实现数据库连接并获取活动SqlSession。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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方法

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

select * from t_g_configitem

View Code

在ConfigItemDaoImpl类实现IConfigItemDao接口的getAllConfigItems方法

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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

上述步骤完成后,就可以编写测试代码进行测试验证了

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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编译,确认无误后,运行测试

ca38f8b728c8e5a6599424f393493c7a.png

对比建表数据,测试代码的运行结果无误。

小结

本文在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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值