精华内容
下载资源
问答
  • 原生JDBC连接步骤

    2020-09-18 16:57:47
    ##JDBC开发步骤 1.注册驱动,jdk1.8之后,自动注册。 //获取类对象导致类加载,执行静态代码块,注册驱动 Class.forName("com.mysql.jdbc.Driver"); //1.驱动注册两次 2.耦合性高,依赖驱动类。 //DriverManager....

    #原生JDBC连接步骤

    Java中定义了访问数据库的接口,可以为多种关系型数据库统一的访问方式。

    由数据库厂商提供驱动实现类。

    ##JDBC开发步骤

    1.注册驱动,jdk1.8之后,自动注册。

    //获取类对象导致类加载,执行静态代码块,注册驱动
    Class.forName("com.mysql.jdbc.Driver");
    //1.驱动注册两次 2.耦合性高,依赖驱动类。
    //DriverManager.registerDriver(new com.mysql.jdbc.Driver());
    

    2.获取连接

    //url:Uniform Resources Location 统一资源定位符(连接字符串),是一个连接数据库的地址
    String url="jdbc:mysql://localhost:3306/companydb?useSSL=false&characterEncoding=utf8&serverTimezone=GMT%2B8";
    //  jdbc:mysql:// 是协议
    //  localhost:主机名 ip地址
    //  3306:端口号
    //  companydb:数据库名
    //  ?useSSL=false:取消安全连接
    //  characterEncoding=utf8:设置编码集为utf-8
    //  serverTimezone=GMT%2B8:设置时区,mysql8.0才用
    Connection conn = DriverManager.getConnection(url,"root","");//三个参数,url,用户名,密码,该语句执行完成就相当于三次握手
    if(conn!=null){
        System.out.println("连接成功");
    }
    

    3.创建命令

    Statement stat = conn.createStatement();
    

    4.执行命令

    (4.1)创建数据库,数据表

    //execute(sql); any SQL statement 执行任何SQL语句,如果第一个结果是一个ResultSet,返回true;否则flase;
    //executeUpdate(); 执行DML(insert,update,delete) DDL(create database,create table),返回影响行个数,或0
    //executeQuery.executeQuery(); 执行查询,返回结果集
    int count = stat.executeUpdate("create database if not exists rom");
    stat.executeUpdate("use rom;");
    int count2 = stat.executeUpdate("create table Wife("+
                                    "id int primary key acto_imcrement,"+
                                    "name varchar(20),"+
                                    "gender char(1),"+
                                    "address varchar(30),"+
                                    "lover varchar(20);"+
                                    ")")
    System.out.println("执行结果:"+count);
    

    (4.2)插入数据

    //4.1添加
            int c1 = stat.executeUpdate("INSERT INTO wife value (null,'艾米莉亚','123','女','魔女大陆','2000-8-10','486')");
            int c2 = stat.executeUpdate("INSERT INTO wife value(null,'蕾姆','1234','女','魔女大陆','2006-6-6','486')");
            int c3 = stat.executeUpdate("INSERT INTO wife value(11,'拉姆','1235','女','魔女大陆','2006-6-6','486')");
            int c4 = stat.executeUpdate("INSERT INTO wife value(12,'菜月昴','13','男','魔女大陆','1999-2-7','艾米莉亚')");
            //4.2更新
            int c5 = stat.executeUpdate("Update wife set gender='n' where id = 12");
            //4.3删除
            int c6 = stat.executeUpdate("DELETE from wife where id = 12");
            System.out.println("执行结果:"+c1);
            System.out.println("执行结果:"+c2);
            System.out.println("执行结果:"+c3);
            System.out.println("执行结果:"+c4);
            System.out.println("执行结果:"+c5);
            System.out.println("执行结果:"+c6);
    

    (4.3)查询

    ResultSet rs = stat.executeQuery("select * from wife;");
            while (rs.next()){
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String pwd = rs.getString("password");
                String gender = rs.getString("gender");
                String address = rs.getString("address");
                Date born = rs.getDate("born");
                String lover = rs.getString("lover");
                System.out.println(id+name+pwd+gender+address+born+lover);
            }
            //倒序查找
            while (rs.previous()){
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String pwd = rs.getString("password");
                String gender = rs.getString("gender");
                String address = rs.getString("address");
                Date born = rs.getDate("born");
                String lover = rs.getString("lover");
                System.out.println(id+name+pwd+gender+address+born+lover);
            }
    

    5.关闭

    rs.close();
    stat.close();
    conn.close();
    
    展开全文
  • 原生JDBC开发步骤

    千次阅读 热门讨论 2017-02-20 17:17:46
    JDBC查询步骤】 我们先看看我们最熟悉也是最基础的通过JDBC查询数据库数据,一般需要以下七个步骤: (1) 加载JDBC驱动 (2) 建立并获取数据库连接 (3) 创建 JDBC Statements 对象 (4) 设置SQL...

    【JDBC查询步骤】

    我们先看看我们最熟悉也是最基础的通过JDBC查询数据库数据,一般需要以下七个步骤:

    (1)  加载JDBC驱动
    (2)  建立并获取数据库连接
    (3)  创建 JDBC Statements 对象
    (4)  设置SQL语句的传入参数
    (5)  执行SQL语句并获得查询结果
    (6)  对查询结果进行转换处理并将处理结果返回

    (7)  释放相关资源(关闭Connection,关闭Statement,关闭ResultSet)

    代码展示:

    	package cn.itcast.mybatis.jdbc;
    	
    	import java.sql.Connection;
    	import java.sql.DriverManager;
    	import java.sql.PreparedStatement;
    	import java.sql.ResultSet;
    	import java.sql.SQLException;
    	
    	public class JdbcTest {
    		
    		public static void main(String[] args) {
    			
    			//数据库连接
    			Connection connection = null;
    			//预编译的Statement,使用预编译的Statement提高数据库性能
    			PreparedStatement preparedStatement = null;
    			//结果 集
    			ResultSet resultSet = null;
    			
    			try {
    				//加载数据库驱动                                                               
    				Class.forName("com.mysql.jdbc.Driver");
    				
    				//通过驱动管理类获取数据库链接
    				connection =  DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8", "root", "mysql");
    				//定义sql语句 ?表示占位符
    				String sql = "select * from user where username = ?";
    				//获取预处理statement
    				preparedStatement = connection.prepareStatement(sql);
    				//设置参数,第一个参数为sql语句中参数的序号(从1开始),第二个参数为设置的参数值
    				preparedStatement.setString(1, "王五");
    				//向数据库发出sql执行查询,查询出结果集
    				resultSet =  preparedStatement.executeQuery();
    				//遍历查询结果集
    				while(resultSet.next()){
    					System.out.println(resultSet.getString("id")+"  "+resultSet.getString("username"));
    				}
    			} catch (Exception e) {
    				e.printStackTrace();
    			}finally{
    				//释放资源
    				if(resultSet!=null){
    					try {
    						resultSet.close();
    					} catch (SQLException e) {
    						// TODO Auto-generated catch block
    						e.printStackTrace();
    					}
    				}
    				if(preparedStatement!=null){
    					try {
    						preparedStatement.close();
    					} catch (SQLException e) {
    						// TODO Auto-generated catch block
    						e.printStackTrace();
    					}
    				}
    				if(connection!=null){
    					try {
    						connection.close();
    					} catch (SQLException e) {
    						// TODO Auto-generated catch block
    						e.printStackTrace();
    					}
    				}
    	
    			}
    	
    	
    		}
    	}
    


    【问题】     

    1、数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响 数据库性能。使用数据库连接池管理数据库连接。但是现在连接池多种多样,可能存在变化,有可能采用DBCP的连接池,也有可能采用容器本身的JNDI数据库连接池。

    设想:我们可以通过DataSource进行隔离解耦,我们统一从DataSource里面获取数据库连接,DataSource具体由DBCP实现还是由容器的JNDI实现都可以,所以我们将DataSource的具体实现通过让用户配置来应对变化。
     
    2、将sql语句硬编码到java代码中,如果sql 语句修改,需要重新编译java代码,不利于系统维护。而且在每个功能都会对数据表进行操作,很多时候就会遇到一个SQL重复的问题,几个功能的SQL语句其实都差不多,有些可能是SELECT后面那段不同、有些可能是WHERE语句不同。有时候表结构改了,那么我们就需要改多个地方,不利于维护。

    设想:将sql语句配置在xml配置文件中,即使sql变化,不需要对java代码进行重新编译。当我们的代码程序出现重复代码时怎么办?将重复的代码抽离出来成为独立的一个类,然后在各个需要使用的地方进行引用。对于SQL重复的问题,我们也可以采用这种方式,通过将SQL片段模块化,将重复的SQL片段独立成一个SQL块,然后在各个SQL语句引用重复的SQL块,这样需要修改时只需要修改一处即可。
     
     
    3、向preparedStatement中设置参数,对占位符号位置和设置参数值,硬编码在java代码中,不利于系统维护。

    设想:将sql语句及占位符号和参数全部配置在xml中。
     
    4、从resutSet中遍历结果集数据时,存在硬编码,将获取表的字段进行硬编码,,不利于系统维护。

    设想:将查询的结果集,自动映射成java对象。

    【总结】

    既然jdbc有这么多可以改进的空间,那么就是mybatis和hibernate出现的理由,敬请期待呦

     
    展开全文
  • 原生Jdbc操作Mysql数据库开发步骤 原生的Jdbc就是指,不使用任何框架,仅用java.sql包下的方法实现数据库查询等的操作。 下面是开发步骤: 1、导入数据库驱动包 -mysql-connector-java-5.1.7-bin.jar 2、...

    原生Jdbc操作Mysql数据库开发步骤

    原生的Jdbc就是指,不使用任何框架,仅用java.sql包下的方法实现数据库查询等的操作。

    下面是开发步骤:

           1、导入数据库驱动包

                  -mysql-connector-java-5.1.7-bin.jar

           2、准备参数

                  -url ()   链接url格式:(jdbc:mysql://主机名:端口号/数据库名字)

                                通常我们会在链接后添加编码方式: useUnicode=true&characterEncoding=UTF-8

                  -username 数据库访问的用户名

                  -password 数据库访问密码

                  -driver com.mysql.jdbc.Driver  内容是数据库驱动包中Driver类的全类名

           3、加载数据库驱动   (使用反射的方式)

                  Class.forName(driver)  

           4、通过数据库驱动获取数据库链接

                  Connection conn = DriverManager.getConnection(url,username,passworrd);

           5、编写sql语句

                  增加 -  INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

                  删除 -  DELETE FROM 表名称 WHERE 列名称 = 值

                  更新 -  UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

                  查询 -  SELECT 列名称 FROM 表名

      6、通过链接获取执行对象

             包含Statement 和 PrepareStatement ,由于PrepareStatement是预编译执行,且效率高、还能防止sql注入,因此在这只使用PrepareStatement讲解。

        prepareStatement = conn.prepareStatement(sql);

        若sql语句中有占位符“?”,则需要进行传入参数

        prepareStatement.setObject(i,object);   //其中i从1开始

      7、执行sql语句

             若为增删改操作,使用executeUpdate()方法,返回值为受影响行数,为int类型。

        int result = pStatement.executeUpdate();

             若为查询操作,使用executeQuery()方法,返回值将是一个结果集,因此需要遍历出结果集。

             ResultSet resultSet = pStatement.executeQuery();

             遍历resultSet

        while(resultSet.next()){

                 Object object = resultSet.getObject(“表单列或者列号”);

        }

      8、关闭资源和连接

          倒序关闭,先关闭resultSet,再关闭prepareStatement,再关闭conn.

      以下是原生操作的代码,以查询为例:

     1     private static final String URL = "jdbc:mysql://127.0.0.1:3306/test";
     2     private static final String USERNAME = "root";
     3     private static final String UPASSWORD = "123456";
     4     private static final String UDRIVER = "com.mysql.jdbc.Driver";
     5     
     6     public static void main(String[] args){
     7         Connection conn = null;
     8         PreparedStatement pStatement = null;
     9         ResultSet resultSet = null;
    10         /*
    11          * 编写sql语句
    12          * 假设test表中只有int类型的id varcher类型的uname两列
    13          * ? 为通配符,留作参数传入
    14          */
    15         String sql ="SELECT id,uname FROM test WHERE id > ?"; 
    16         try {
    17            //加载驱动
    18            Class.forName(UDRIVER);
    19            //获取链接
    20            conn = DriverManager.getConnection(URL, USERNAME, UPASSWORD);
    21            //获取链接执行对象
    22            pStatement = conn.prepareStatement(sql);
    23            /*
    24             * 将参数传入
    25             * 此处根据参数类型的不同选用不同的方法传入
    26             * ###其中第一个参数parameterIndex是从1开始计数##
    27             */
    28            pStatement.setInt(1, 3);
    29            //执行Sql语句
    30            resultSet = pStatement.executeQuery();
    31            //遍历结果集
    32            while(resultSet.next()){
    33                Integer id = resultSet.getInt("id");
    34                String uname = resultSet.getString("uname");
    35                System.out.println("用户ID为 : "+id+",用户名为: "+uname);
    36            }
    37         } catch (ClassNotFoundException e) {
    38            // TODO Auto-generated catch block
    39            e.printStackTrace();
    40         } catch (SQLException e) {
    41            // TODO Auto-generated catch block
    42            e.printStackTrace();
    43         } finally {
    44            //逆序关闭资源
    45            try {
    46                if(resultSet!=null){
    47                    resultSet.close();
    48                }
    49                if(pStatement!=null){
    50                    pStatement.close();
    51                }
    52                if(conn!=null){
    53                    conn.close();
    54                }
    55            } catch (SQLException e) {
    56                // TODO Auto-generated catch block
    57                e.printStackTrace();
    58            }
    59         }
    60     }

     

     

    转载于:https://www.cnblogs.com/Mr-Dawei/p/7455324.html

    展开全文
  • 原生JDBC

    2017-11-24 19:04:59
    JDBC( java DataBase Connection 数据库链接 ) 是一种用于执行SQL语句的java API.  JDBC是java访问数据库的标准规范,可以为不同的关系库提供统一访问,由一组用java语言编写的接口和类组成  JDBC规范四个核心对象...

    /**
     * JDBC( java DataBase Connection 数据库链接  ) 是一种用于执行SQL语句的java API.
     * JDBC是java访问数据库的标准规范,可以为不同的关系库提供统一访问,由一组用java语言编写的接口和类组成
     * JDBC规范四个核心对象:
     * 		DriverManager -->用于注册驱动
     * 		Connection    -->获取数据库链接对象
     * 		Statement     -->操作数据库sql语句对象
     * 		ResultSet     -->返回结果集
     */
    * 需要使用数据库链接相关的jar
     * mysql-connector-java-5.1.37-bin.jar
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class JDBCUtils {
    	// 定义数据库四大基本信息
    	private static String driver = "com.mysql.jdbc.Driver";
    	private static String url = "jdbc:mysql://127.0.0.1:3306/day_04";
    	private static String username = "root";
    	private static String password = "root";
    	private static Connection conn;
    
    	// 定义一个静态块,在调用JDBCUtils类是初始化,获取数据库链接
    	static {
    		try {
    			/*
    			 * java.sql.DriverManager是用来管理数据库驱动程序的 static void
    			 * registerDriver(Driver driver) 向 DriverManager 注册给定驱动程序。
    			 * 工具源码里面有一个static驱动,当调用driver类时已经调用了,所以这里不需要再次调用,我们可以使用反射技术
    			 * DriverManager.registerDriver(new Driver());
    			 */
    			Class.forName(driver);
    			// 获取数据库链接对象
    			conn = DriverManager.getConnection(url, username, password);
    		} catch (Exception e) {
    			// 把编译异常转变为运行时异常
    			throw new RuntimeException("数据库链接失败");
    		}
    	}
    	//返回数据库链接对象
    	public static Connection getConnection() {
    		return conn;
    	}
    	//静态关闭流对象
    	public static void close(ResultSet rs, Statement stat, Connection conn) {
    		try {
    			if (rs != null) {
    				rs.close();
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				stat.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			} finally {
    				try {
    					conn.close();
    				} catch (SQLException e) {
    					e.printStackTrace();
    				}
    			}
    		}
    	}
    }
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    public class DemoJDBCUtils {
    	public static void main(String[] args) {
    		//定义局部变量
    		Connection connection = null;
    		Statement statement = null;
    		ResultSet resultSet = null;
    		try {
    			//获取数据库链接对象
    			connection = JDBCUtils.getConnection();
    			//获取数据执行方法
    			statement = connection.createStatement();
    			String sql = "select * from 表名";
    			//请求数据sql返回结果集
    			resultSet = statement.executeQuery(sql);
    			//next是否有下一个
    			while(resultSet.next()){
    				System.out.println(resultSet.getString("cid")+"\t"+resultSet.getString("cname"));
    			}
    		} catch (Exception e) {
    			System.out.println(e);
    		}finally {
    			//关闭流对象
    			JDBCUtils.close(resultSet, statement, connection);
    		}
    	}
    }
    展开全文
  • 原生JDBC开发详解及问题总结(一)本篇文章主要介绍JDBC开发过程,程序代码需要注意的问题及原生JDBC自身存在的问题总结。JDBC基本编程步骤 加载数据库驱动 创建并获取数据库连接 创建JDBC statement对象或者...
  • 原生JDBC连接数据库

    万次阅读 多人点赞 2018-07-22 20:15:47
    JDBC(Java Data Base Connectivity,java数据库连接)是SUN公司开发的,一种用于执行SQL语句的Java API JDBC是Java访问数据库的标准规范,可以为不同的关系型数据库提供统一访问,它由一组用Java语言编写的接口和类...
  • 原生JDBC+mybatis

    2018-09-19 21:04:00
    1.1. jdbc编程步骤: 1、 加载数据库驱动 2、 创建并获取数据库链接 3、 创建jdbc statement对象 4、 设置sql语句 5、 设置sql语句中的参数(使用preparedStatement) 6、 通过statement执行sql并获取结果 7、 ...
  • jdbc原生开发步骤 1、注册驱动 2、获得连接 3、获得执行者对象 4、获得结果集 5、结果集处理 6、释放资源(不要忘)注意导包正确:注意数据类型接受相匹配:import java.sql.Connection; import java.sql....
  • 在接触JDBC之前,我们的数据都是自己做得,也叫假数据,而实际开发过程中需要我们去操作的数据一般都存放在数据库中,今天我先以mysql作为例子为大家演示一下原生JDBC的操作流程。 JDBC 什么是JDBC:Java Data Base ...
  • Java jdbc原生开发步骤

    2019-10-08 16:07:58
    * jdbd原生开发步骤 */ public class Demo { public static void main(String[] args) throws Exception { //注册驱动,反射方式加载 Class.forName("com.mysql.jdbc.Driver"); //设置url String url = "jdbc:...
  • 自定义 Mybatis 之原生jdbc案例前言一、JDBC规范(掌握四个核心对象)二、JDBC原理三、原生jdbc开发步骤四、原生jdbc案例4.1、建库建表4.2、创建pojo对象4.3、jdbc代码4.4、测试程序4.5、原生jdbc存在的问题 ...
  • 一、JDBC开发的编写步骤 1、搭建开发环境:  1.1建立数据库  1.2导入数据库的驱动jar包 2、编码步骤  a、注册驱动 DriverManager  DriverManager.registerDriver(new com.mysql.jdbc.Driver());  b、...
  • 一、原生 JDBC 开发步骤 加载数据库驱动 创建并获取数据库链接 创建 jdbc statement 对象 设置sql语句 设置sql语句中的参数(使用 preparedStatement) 通过 statement 执行 sql 并获取结果 对 sql 执行结果...
  • Java操作数据库之jdbc原生方式】

    万次阅读 2017-04-17 10:51:05
    资料下载:跟后面的dbUtils一起打包,有需要的下载咯。...例如说jdbc,dbutil +C3p0,hibernate,jdbcTemplate等等【这五个都会总结】,到后面的话使用一些高级的框架去操作数据库,比如hibernate。但是底层操
  • 都是在ORM框架上做二次开发,确实框架帮我们做了很多事情,但是原生JDBC我们还是需要掌握的,网上很多代码为了省事写的很不规范,很容易误导第一次接触的人JDBC的人,接下来我详细解释一下使用原生JDBC的每个步骤,...
  • 一。jbdc的常用API1.Connection:数据库的链接对象2.statement:数据库sql执行...jdbc开发步骤1.在项目中加入驱动jar包2.写jdbc链接代码注意:日期对象的处理。从结果集中获取时间是用getTimestamp(),得到的是Times...
  • 前几天被一个项目对接要搞死了,搞了好几天,各种方法去试、各种百度去搜、各个门道去问,...原理:运用原生JDBC /** * 查询数据 * @return */ public List<AttThirdIMessagetem> getSelectData( String ip,
  • 本文介绍 Sharding-JDBC 数据源分片之使用 Java 配置实现基于原生 JDBC 的精确分片方案。目录开发环境基础示例总结开发环境Oracle JDK 1.8.0_201Apache Maven 3.6.0IntelliJ IDEA (Version 2018.3.3)MySQL 5.6.38...
  • 原生JDBC开发步骤 三.定义原生JDBCUtils.java工具类 四.DBCP连接池 五.C3P0连接池 六.DBUtils编写语句 一.JDBC 介绍:java语言操作各种数据库的技术 * JDBC由一堆接口和类组成 * 类:DriverManger,用于注册...
  • 目录:1.JDBC基本开发方法以及模板2.SQL攻击以及解决方法PreparedStatement1 什么是SQL攻击2 演示SQL攻击3.防止SQL攻击4.PreparedStatement是什么?5.PreparedStatement的使用6.PreparedStatement完整模板3.开发中...
  • java开发JDBC连接数据库的步骤

    千次阅读 2015-08-12 13:58:29
    ————JDBC核心类 DriverManager 用于管理驱动/获得连接 Connection 用于连接数据库 Statement 用于执行SQL语句 ResultSet 用户获取执行结果,可以对数据库字段进行...完整java开发JDBC连接数据库包含7个步骤
  • 文章目录JDBC原理JDBC入门案例JDBC的API详解JDBC增删改查操作JDBC工具类 JDBC是Java访问数据库的标准规范,可以为不同的关系型数据库提供统⼀访问,它由一组用Java编写的接口和类组成。 JDBC需要连接驱动,驱动是两...
  • 原生JDBC数据库连接

    2020-07-29 12:22:18
    原生JDBC数据库连接mysql数据库连接介绍mysql数据库特点关键词jdbc连接步骤代码:数据库 mysql数据库连接介绍 mysql数据库是用于管理数据的,后台是用户根据业务做逻辑处理的,前台显示数据并进行交互。 mysql数据库...
  • mysql多表查询&原生jdbc

    2020-01-16 22:42:55
    原生jdbc 能够使用内连接进行多表查询 能够使用外连接进行多表查询 能够使用子查询进行多表查询 能够理解JDBC的概念 能够使用DriverManager类 能够使用Connection接口 能够使用Statement接口 能够使用...
  • 1. 什么是 JDBCJDBC(Java Database Connectivity) Java 连接数据库的规范(标准),可以使用 ...3.JDBC 开发步骤 3.1 环境搭建(导包) 将 mysql 驱动mysql-connector-java-8.0.23复制到项目的 lib 文件夹中。.
  • 原生jdbc连接分析凯哥Java 凯哥java本节主要内容1:mybatis的介绍2:原始jdbc问题分析3:JDBC演变成mybatis的过程4:总结&下节预告本文是《凯哥陪你学系列-框架学习之mybatis框架学习》中第一篇 mybatis简介&...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,723
精华内容 3,489
关键字:

原生jdbc开发步骤