发布网友 发布时间:2022-05-01 02:42
共4个回答
懂视网 时间:2022-05-01 07:04
在写这个程序之前需要创建一个java工程,这是前提
接着加入mysql的驱动包,我用的数据库是5.1版本的,所以驱动包也是5.1版本的,jdk是1.7
创建数据库位mybatis,表名位user
package com.mybatis.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; /** * JDBC操作数据库 * @author Administrator * */ public class JDBCTest { public static void main(String[] args) { //数据库链接 Connection connection=null; //预编译的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", "123456"); //定义sql语句,?表示占位符 String sql="select * from user where id=?"; //获取预处理的statement preparedStatement=connection.prepareStatement(sql); //设置sql参数,第一个参数是sql中的参数的序号(从1开始),第人体各参数是设置的值 preparedStatement.setInt(1, 1); //向数据库发出sql请求,查询结果集 resultSet=preparedStatement.executeQuery(); //遍历查询结果集 while (resultSet.next()) { System.out.println(resultSet.getString(2)); } } catch (Exception e) { e.printStackTrace(); }finally{ try { //关闭连接 resultSet.close(); preparedStatement.close(); connection.close(); } catch (Exception e2) { e2.printStackTrace(); } } } }
根据以上编码步骤,我们得到以下结论:
1、 加载数据库驱动
2、 创建并获取数据库链接
3、 创建jdbcstatement对象
4、 设置sql语句
5、 设置sql语句中的参数(使用preparedStatement)
6、 通过statement执行sql并获取结果
7、 对sql执行结果进行解析处理
8、 释放资源(resultSet、preparedstatement、connection)
以上是一个简单的用jdbc操作数据库的例子,那么来简单的说下这样操作数据库会有一些怎样的问题。
1、数据库连接,使用时就创建,不适用就释放,对数据库进行频繁的开启和关闭操作,这是种资源的浪费,影响数据库性能。
设想:使用数据库连接池管理数据库连接。
2、将sql语句硬编码到Java代码中,如果sql语句修改,需要重新编译Java代码,不利于系统维护。
设想:将sql语句配置在xml配置文件中,即使sql变化,也不需要对java代码进行修改重新编译。
3、向preparedStatement中设置参数,对占位符位置参数值,硬编码在java中,不利于系统维护。
设想:将sql语句及占位符和参数全部配置在xml中。
4、从resultSet中遍历结果集数据时,存在硬编码,将获取表的字段进行硬编码,不利于系统维护。
设想:将结果集映射成java对象。
对原生态jdbc(单独使用jdbc开发)问题总结
标签:
热心网友 时间:2022-05-01 04:12
不行,要装2005的驱动。热心网友 时间:2022-05-01 05:30
应该不行吧,2005 要安装另外的驱动热心网友 时间:2022-05-01 07:04
不行 你就给换成2000被 ···又不难下 2005用起来会有很多不爽的地方的··以后麻烦多了