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&amp;serverTimezone=UTC&amp;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中并发常用工具类及示例代码

java中Properties类及读取properties中属性值

VS Code配置snippets代码片段快速生成html模板,提高前端编写效率

VSCode自定义代码片段3——url大全

VSCode自定义代码片段3——url大全

VSCode自定义代码片段3——url大全