Java工具类及配置文件模板大全
Posted 花伤情犹在
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java工具类及配置文件模板大全相关的知识,希望对你有一定的参考价值。
JDBC通用增删改查
JDBC工具类
/**
* JDBC工具类
*/
public class Util1 {
//加载驱动
static {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//获得连接
public static Connection getConnection(){
try {
DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql?characterEnconding=utf-8","root","root");
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/** 增删改的通用方法
* @param String sql 要执行的sql
* @param Object[] obj 对象类型的数组 里面存放着 sql执行的占位符参数
* Object... 可变参数
* */
public static boolean executeUpdate(String sql,Object... args){
Connection conn = null;
PreparedStatement ps = null;
try {
conn = getConnection();
ps = conn.prepareStatement(sql);
//有参数
for(int i=0;i<args.length;i++){
ps.setObject(i+1,args[i]);
}
//执行sql语句
int i = ps.executeUpdate();
//返回 true
return i>0;
} catch (SQLException e) {
e.printStackTrace();
}finally{
//关闭资源
close(conn,ps,null);
}
return false;
}
/**
* 查询的通用方法
* @param sql;
* @param args;
* @return
* */
public static List<Map<String,Object>> executeQuery(String sql,Object... args){
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = getConnection();
ps = conn.prepareStatement(sql);
//有可能有参数
for(int i=0;i<args.length;i++){
ps.setObject(i+1,args[i]);
}
//执行sql语句
rs = ps.executeQuery();
//创建List集合
List<Map<String, Object>> list = new ArrayList<>();
//获取本次查询结果集有多少列
int count = rs.getMetaData().getColumnCount();
//while循环
while(rs.next()){
//创建Map集合 获取一个数据封装成一个Map集合
Map<String, Object> map = new HashMap<>();
//for循环 遍历所有的列
for(int i=0;i<count;i++){
//获取本次查询结果集的列名
String name = rs.getMetaData().getColumnLabel(i + 1);
map.put(name,rs.getObject(name));
}
//把所有的map集合添加到List集合中
list.add(map);
}
//返回值
return list;
} catch (SQLException e) {
e.printStackTrace();
}finally{
//关闭资源
close(conn,ps,rs);
}
return null;
}
/**
* 关闭资源的通用方法
* */
public static void close(Connection conn,Statement stat,ResultSet rs){
try{
if(rs!=null){
rs.close();
}
if(stat!=null){
stat.close();
}
if(conn!=null){
conn.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
自定义配置文件版
public class BaseDao {
// 配置集合
public static Properties properties = new Properties();
// 加载驱动
static {
// 集合对象加载数据
InputStream is = BaseDao.class.getResourceAsStream("data.properties");
try {
properties.load(is);
} catch (IOException e) {
e.printStackTrace();
}
// 获取配置中的数据,从集合中获取
String driver = properties.getProperty("driver");
// 加载jdbc驱动
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
// 获取连接对象
public Connection getConnection() {
// 获取配置中的数据,从集合中获取
String url = properties.getProperty("url");
String user = properties.getProperty("user");
String pwd = properties.getProperty("pwd");
// 获取连接对象
Connection connection = null;
try {
connection = DriverManager.getConnection(url, user, pwd);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
// 返回连接对象
return connection;
}
// 关闭资源
public void closeAll(Connection connection, Statement statement, ResultSet resultSet) {
// 按顺序删除
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if (statement != null) {
try {
statement.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
//通用的增删改
public int commonUpdate(String sql, Object[] objects) {
// 获取连接对象
Connection connection = getConnection();
// 构建执行者
PreparedStatement preparedStatement = null;
try {
preparedStatement = connection.prepareStatement(sql);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
// 填入数据
for (int i = 0; i < objects.length; i++) {
try {
preparedStatement.setObject(i + 1, objects[i]);
// preparedStatement.setNull(位置, Types.INTEGER);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
// 执行语句
int i = 0;
try {
i = preparedStatement.executeUpdate();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
// 返回受景响的行数
return i;
}
// 通用查询
public ResultSet commonSelect(String sql, Object[] objects) {
// 定义一个返回值
ResultSet resultSet = null;
// 获取连接对象
Connection connection = getConnection();
// 获得安全执行者
PreparedStatement preparedStatement = null;
try {
preparedStatement = connection.prepareStatement(sql);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
for (int i = 0; i < objects.length; i++) {
try {
assert preparedStatement != null;
preparedStatement.setObject(i + 1, objects[i]);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
// 安全执行者执行
try {
assert preparedStatement != null;
resultSet = preparedStatement.executeQuery();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
// 处理结果集
return resultSet;
}
}
Mybatis 工具类的封装
MyBatisUtils
/**
* MyBatis工具类
*/
public class MyBatisUtils {
//创建SqlSession
private static SqlSession sqlSession;
//初始化创建SqlSession
static {
//工厂构建者
SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
//MyBatis配置文件名称
String configName = "sqlMapConfig.xml";
//定义输入流
InputStream is = null;
try {
//读取配置文件
is = Resources.getResourceAsStream(configName);
} catch (IOException e) {
e.printStackTrace();
}
//通过配置文件构建出工厂类
SqlSessionFactory ssf = ssfb.build(is);
//通过工厂类获取sqlSession
sqlSession = ssf.openSession(true);
}
//获取sqlSession
public static SqlSession getSqlsession(){
return sqlSession;
}
//归还sqlSession
public static void closeSqlsession(SqlSession sqlSession){
if (sqlSession!=null){
sqlSession.close();
}
}
}
MyBatis逆向生成
MyBatisUtils
public class GeneratorSqlmap {
public void generator() throws Exception{
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
//指定 逆向工程配置文件
File configFile = new File("generatorConfig.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
callback, warnings);
myBatisGenerator.generate(null);
}
public static void main(String[] args) throws Exception {
try {
GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
generatorSqlmap.generator();
} catch (Exception e) {
e.printStackTrace();
}
}
}
配置文件generatorConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<context id="testTables" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/demo1?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true"
userId="root"
password="root">
<property name="nullCatalogMeansCurrent" value="true"/>
</jdbcConnection>
<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- targetProject:生成PO类的位置 -->
<javaModelGenerator targetPackage="com.demo.pojo"
targetProject=".\\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false"/>
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="com.demo.mapper"
targetProject=".\\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false"/>
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.demo.mapper"
targetProject=".\\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property 以上是关于Java工具类及配置文件模板大全的主要内容,如果未能解决你的问题,请参考以下文章
java中Properties类及读取properties中属性值