zoukankan      html  css  js  c++  java
  • java jdbc笔记整理

    以前在公司直接用到的关于数据库方面的都是用ibatis,现在先来学些jdbc编程,顺便比较一下与ibatis框架的区别。

    一,使用步骤:

    1,加载驱动。

    Class.forName(“com.mysql.jdbj.Driver”);

    2,使用DriverManager获取数据库连接。url写法:jdbc:subprotocol,other stuff。如mysql:     jdbc:mysql://hostname:port/databasename

    Connection conn = DriverManager.getConnection(url,user,pass);

    3,使用Connection来创建一个Statement对象。

    Statement stmt = conn.createStatement();

    4.1,使用statement执行SQL语句。Statement有三种执行SQL语句的方法:

    1)execute()可执行select任何SQL语句——返回一个boolean值。

    2)executeQuery()执行select语句——返回查询到的结果集。

    3)executeUpdate()用于执行DML语句,返回一个整数代表被SQL渔具影响的记录条数。

    ResultSet rs = stmt.executeQuery(sql);

    4.2使用preparedStatement执行SQL语句。

    如果需要经常反复执行一条结构相似的渔具,可以使用带占位符(?)参数的SQL语句来代替它。使用PreparedStatement接口。在设置的使用可以用setXxx(int index,Xxx value)的方法来传入参数值。

    例子:

    import java.io.FileInputStream;

    import java.sql.Connection;

    import java.sql.DriverManager;

    import java.sql.PreparedStatement;

    import java.sql.Statement;

    import java.util.Properties;

    public class ConnMysql {

        private String driver;

        private String url;

        private String user;

        private String pass;

        private void initParam(String paramFile) throws Exception{

           Properties props = new Properties();

           props.load(new FileInputStream(paramFile));

           driver = props.getProperty("driver");

           url = props.getProperty("url");

           user = props.getProperty("user");

           pass = props.getProperty("pass");

        }

        public static void main(String[] args) throws Exception {

           ConnMysql ed = new ConnMysql();

           ed.initParam("mysql.ini");

           Class.forName(ed.driver);

           try(

               Connection conn = DriverManager.getConnection(ed.url,ed.user,ed.pass);

               Statement stmt = conn.createStatement();

               PreparedStatement pstmt = conn.prepareStatement("insert into s1 values(?,?)");

           )

           {

               for(int i = 0; i < 100; i++){

                  pstmt.setInt(1, i+5);

                  pstmt.setInt(2,i);

                  pstmt.executeUpdate();

               }

           }

          

        }

    }

    5,可以使用mysql.ini配置文件代替driver,url,user,pass的值。这个文件要把它移进工程。而不是移进src目录下面。

    6,使用try(){}

    从 Java 7 build 105 版本开始,Java 7 的编译器和运行环境支持新的 try-with-resources 语句,称为 ARM 块(Automatic Resource Management) ,自动资源管理。

    数据流会在 try 执行完毕后自动被关闭,前提是,这些可关闭的资源必须实现 java.lang.AutoCloseable 接口。

    二, 比较statement和preparedStatement的。

    1,PreparedStatement预编译SQL语句,性能更好。

    2,PreparedStatement无须“拼接”SQL语句,编程更简单。

    3,PreparedStatement可以防止SQL语句注入。

  • 相关阅读:
    T4文本模板转换过程
    ARKit从入门到精通(6)-ARSession介绍
    ARKit从入门到精通(5)-ARScnView介绍
    ARKit从入门到精通(4)-ARKit全框架API大全
    ARKit从入门到精通(3)-ARKit自定义实现
    ARKit从入门到精通(2)-ARKit工作原理及流程介绍
    ARKit从入门到精通(1)-ARKit初体验
    ios系统中各种设置项的url链接
    iOS 检测网络状态 自动判断 认为提示网络改变
    ios 根据scrollview滑动的偏移计算滑动到第几页算法(不同需求不同计算)
  • 原文地址:https://www.cnblogs.com/bt575876212/p/4889173.html
Copyright © 2011-2022 走看看