Runnable JAR file spring + mybatis 普通项目(非maven 非springboot)
来源:互联网 发布:精英阶层 知乎 编辑:程序博客网 时间:2024/06/05 13:21
项目源码:https://github.com/dillyant/JAVA/tree/master/springmybatis
准备环境: mysql数据库,测试数据库yanwftest
数据准备:
CREATE TABLE `user_t` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_name` varchar(40) NOT NULL,
`password` varchar(255) NOT NULL,
`age` int(4) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
INSERT INTO `user_t` VALUES ('1', '测试', 'sfasgfaf', '24');
- 创建java普通项目 File->New->Project...,选择Java Project
2.项目名称自定义,以springmybatis为例,点击Finish。
3.目录结构如下
4. 调整目录结构
选择当前项目,右键New->Folder,添加lib目录
选择当前项目,右键New->Source Folder,添加resources
修改目录结构如下:
5.lib目录下添加jar包,jar获取可以从http://mvnrepository.com/maven仓库获取, 选中jar包右键,Build Path->Add To Build Path
6.src目录下添加源码jar包目录结构
7.添加源码
包名:com.dillyant.model
类文件名:User.java
packagecom.dillyant.model;
publicclassUser {
private Integerid;
private StringuserName;
private Stringpassword;
private Integerage;
public Integer getId() {
return id;
}
public void setId(Integerid) {
this.id= id;
}
public String getUserName() {
return userName;
}
public void setUserName(StringuserName) {
this.userName= userName == null ? null : userName.trim();
}
public String getPassword() {
return password;
}
public void setPassword(Stringpassword) {
this.password= password == null ? null : password.trim();
}
public Integer getAge() {
return age;
}
public void setAge(Integerage) {
this.age= age;
}
}
包名:com.dillyant.dao
类文件名:UserMapper.java
packagecom.dillyant.dao;
importcom.dillyant.model.User;
publicinterfaceUserMapper {
User selectByPrimaryKey(Integerid);
}
包名: com.dillyant.dao
XML文件名:UserMapper.xml
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEmapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mappernamespace="com.dillyant.dao.UserMapper">
<selectid="selectByPrimaryKey"parameterType="java.lang.Integer"
resultType="com.dillyant.model.User">
select
id, user_name, password, age
from user_t
where id =
#{id,jdbcType=INTEGER}
</select>
</mapper>
包名: com.dillyant.service
类文件名:IUserService.java
packagecom.dillyant.service;
importcom.dillyant.model.User;
publicinterfaceIUserService {
publicUser getUserById(intuserId);
}
包名: com.dillyant.service.impl
类文件名:UserServiceImpl.java
package com.dillyant.service.impl;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.dillyant.dao.UserMapper;
import com.dillyant.model.User;
import com.dillyant.service.IUserService;
@Service("userService")
@Transactional(readOnly=false)
public class UserServiceImpl implements IUserService {
@Resource
private UserMapper userMapper;
@Override
public User getUserById(int userId) {
return this.userMapper.selectByPrimaryKey(userId);
}
}
包名: com.dillyant.main
类文件名:Main.java
packagecom.dillyant.main;
importorg.apache.log4j.Logger;
importorg.springframework.context.ApplicationContext;
importorg.springframework.context.support.ClassPathXmlApplicationContext;
importcom.alibaba.fastjson.JSON;
importcom.dillyant.model.User;
importcom.dillyant.service.impl.UserServiceImpl;
publicclass Main {
privatestaticLogger logger = Logger.getLogger(Main.class);
privatestaticApplicationContext ac;
publicstaticvoidmain(String[] args) {
ac= new ClassPathXmlApplicationContext("spring-mybatis.xml");
UserServiceImpliuser = (UserServiceImpl) ac.getBean("userService");
User user = iuser.getUserById(1);
logger.info(JSON.toJSONString(user));
}
}
8 resouces目录下添加配置文件
目录结构如下:
数据库配置文件
jdbc.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/yanwftest
username=test
password=test
#定义初始连接数
initialSize=0
#定义最大连接数
maxActive=20
#定义最大空闲
maxIdle=20
#定义最小空闲
minIdle=1
#定义最长等待时间
maxWait=60000
日志配置文件
log4j.properties
#定义LOG输出级别
log4j.rootLogger=debug,Console,File
#定义日志输出目的地为控制台
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
#可以灵活地指定日志输出格式,下面一行是指定具体的格式
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 =logs/sm.log
#定义文件最大大小
log4j.appender.File.MaxFileSize =10MB
# 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志
log4j.appender.File.Threshold =ALL
log4j.appender.File.layout =org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p][%d{yyyy-MM-ddHH\:mm\:ss}][%c]%m%n
spring mybatis集成配置文件
spring-mybatis.xml
<?xmlversion="1.0"encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:mybatis="http://mybatis.org/schema/mybatis-spring"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
http://mybatis.org/schema/mybatis-spring
http://mybatis.org/schema/mybatis-spring.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd">
<!-- 自动扫描 -->
<context:component-scanbase-package="com.dillyant.service.impl"/>
<!-- 引入配置文件 -->
<context:property-placeholderlocation="classpath:jdbc.properties"/>
<beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<propertyname="driverClassName"value="${driver}"/>
<propertyname="url"value="${url}"/>
<propertyname="username"value="${username}"/>
<propertyname="password"value="${password}"/>
<!-- 初始化连接大小 -->
<propertyname="initialSize"value="${initialSize}"></property>
<!-- 连接池最大数量 -->
<propertyname="maxActive"value="${maxActive}"></property>
<!-- 连接池最大空闲 -->
<propertyname="maxIdle"value="${maxIdle}"></property>
<!-- 连接池最小空闲 -->
<propertyname="minIdle"value="${minIdle}"></property>
<!-- 获取连接最大等待时间 -->
<propertyname="maxWait"value="${maxWait}"></property>
</bean>
<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
<beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">
<propertyname="dataSource"ref="dataSource"/>
<!-- 自动扫描mapping.xml文件 -->
<propertyname="mapperLocations"value="classpath:com/dillyant/dao/*.xml"></property>
</bean>
<!-- DAO接口所在包名,Spring会自动查找其下的类 -->
<beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer">
<propertyname="basePackage"value="com.dillyant.dao"/>
<propertyname="sqlSessionFactoryBeanName"value="sqlSessionFactory"></property>
</bean>
<!-- (事务管理)transaction manager, use JtaTransactionManager for globaltx -->
<beanid="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<propertyname="dataSource"ref="dataSource"/>
</bean>
<!-- 在Spring中使用基于注解的事务管理特性 -->
<tx:annotation-driventransaction-manager="transactionManager"
proxy-target-class="true"/>
</beans>
9。运行测试成功。
10。导出可执行jar包
选中项目,右键Export,选择Runnable JAR file
Launch configuration选择当前项目的main, Export destination自定义, Library handling选择第三项,其他两项测试都未通过。
导出目录结果如下:
(windows 平台)
使用java 命令执行该jar包,如下:
结果如下,测试通过。
linux 平台
使用java 命令执行该jar包,如下:
结果如下,测试通过。
阅读全文
0 0
- Runnable JAR file spring + mybatis 普通项目(非maven 非springboot)
- Runnable JAR file spring + mybatis 普通项目(非maven 非springboot)
- Spring+Mybatis+Maven非web项目打包成可执行jar
- Spring+SpringMVC+Mybatis 整合【非maven项目】
- J2EE 环境 Sturts2+Spring+MyBatis+bootstraps 整合案例(非maven项目)
- SpringBoot(非MAVEN教程)
- spring+springmvc+mybatis+logback非maven
- SpringBoot快速入门(非maven)
- 非web项目,maven工程整合spring+mabits,并打包为可运行jar包
- maven项目里添加非maven管理的jar包
- 解决maven项目中引用非maven工程中的jar
- 【Idea】——非Maven项目导入jar包
- 非maven项目将第三方依赖打入jar
- 非web环境,maven+spring+mybatis配置,备忘
- java搭建基于springboot的ssm(spring + springmvc + mybatis)的maven项目
- SpringBoot(非spring-webmvc)访问Mongodb例子
- 非Maven项目转为Maven项目
- 非maven项目转成maven项目
- JAVA 定时器的三种方法
- ansible之loops
- 学习mysql时经常用到的语句和错误
- 关于javax.mail.MessagingException: Could not connect to SMTP host: smtp.qq.com, port: 25;
- onclick和click的区别及示例
- Runnable JAR file spring + mybatis 普通项目(非maven 非springboot)
- scikit-learn 梯度提升树(GBDT)调参小结
- windows 下c++获取操作系统版本名称笔记
- python测试opencv时imread导致的错误
- 线性回归与岭回归python代码实现
- Hibernate各种主键生成策略与配置详解
- java中的自定义异常类
- Batch Normalization 学习笔记
- suricata 源码详细讲解