今天初学数据库的一些简单创建数据库和表,并进行简单的查询,插入。

接下学习的就是java工程中怎么链接数据库呢。主要的方法和用到的类如下。

切记,mysql需要的jar包 mysql-connector-java-5.1.7-bin.jar

sqlserver需要的jar包 sqljdbc4.jar

oracle需要的jar包 ojdbc6.jar

注意:下面用到的类不是jar中的,而是java.sql中的类。

以下是三个常用数据库的连接实现

一、sqlserver

  1. package com.direct.database;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import java.sql.Statement;
  9. import java.util.ArrayList;
  10. import java.util.List;
  11.  
  12. public class TestPreparedStatement {
  13. public static List< Student> list = new ArrayList<Student>();//存学生对象的集合
  14. public int a;
  15. public void flag(){
  16. a = 10;
  17. System.out.println(a);
  18. //驱动类
  19. String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
  20. //url地址
  21. String url = "jdbc:sqlserver://localhost:1433;databaseName=test";
  22. String userName = "sa";
  23. String password = "123456";
  24. Connection conn = null;//用于应用程序和数据的连接
  25. Statement stmt = null;//已经创建连接的基础上,向数据库发送SQL语句
  26. ResultSet rs = null;//暂时存放数据库查询操作所获得的结果
  27.  
  28. try {
  29. //加载驱动类
  30. Class.forName(driver);
  31. } catch (ClassNotFoundException e) {
  32. e.printStackTrace();
  33. }
  34. try {
  35. //得到一个连接
  36. conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=test", "sa","123456");//得到一个连接
  37. stmt = conn.createStatement();
  38. rs = stmt.executeQuery("select * from Info");//执行SQL语句,并存在ResultSet对象中
  39. while (rs.next()) {
  40. //存对象到集合
  41. Student student = new Student(rs.getString("id"), rs.getString("name"), rs.getString("sex"));
  42. TestPreparedStatement.list.add(student);
  43.  
  44. System.out.print(rs.getString("id")); //读取数据
  45. System.out.print(rs.getString("name"));
  46. System.out.print(rs.getString("sex"));
  47. System.out.println();
  48. }
  49.  
  50. // 创建PreparedStatement对象
  51. //PreparedStatement pstmt = conn.prepareStatement("insert into Info values(?, ? ,?)");//添加
  52. //删除
  53. PreparedStatement pstmt1 = conn.prepareStatement("delete from Info where id = ? and name = ?");
  54. //使用set方法设置参数
  55. PreparedStatement pstmt2 = conn.prepareStatement("update Info set name=? where name ='star' ");
  56. pstmt1.setInt(1, 4);
  57. pstmt1.setString(2, "the");//根据id和name删除数据库的内容
  58.  
  59. /*pstmt.setInt(1, 1);
  60. pstmt.setString(2, "star");
  61. pstmt.setString(3, "nan");//添加数值对到数据库
  62. */
  63. pstmt2.setString(1, "super");//更新数据
  64. pstmt2.executeUpdate();
  65. //pstmt.executeUpdate();
  66. pstmt1.executeUpdate();//执行PreparedStatement语句
  67. } catch (SQLException e) {
  68. e.printStackTrace();
  69. }finally{
  70. //关闭连接
  71. try {
  72. rs.close();
  73. stmt.close();
  74. conn.close();
  75. } catch (SQLException e) {
  76. // TODO Auto-generated catch block
  77. e.printStackTrace();
  78. }
  79.  
  80. }
  81. System.out.println("----------------");
  82. for (int i = 0; i < TestPreparedStatement.list.size(); i++) {
  83. System.out.println(TestPreparedStatement.list.get(i));
  84. }
  85. }
  86.  
  87. public static void main(String[] args) {
  88. new TestPreparedStatement().flag();
  89.  
  90. }
  91. }

 

二、mysql方式一

  1. package com.dkt.mysql.util;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import java.sql.Statement;
  9.  
  10. public class MysqlConnection {
  11. public static void main(String[] args) {
  12. try {
  13. Class.forName("com.mysql.jdbc.Driver");
  14. } catch (ClassNotFoundException e1) {
  15. // TODO Auto-generated catch block
  16. e1.printStackTrace();
  17. }
  18. Connection conn=null;
  19. PreparedStatement prep = null;
  20. Statement state = null;
  21. ResultSet rs = null;
  22. try {
  23. String url = "jdbc:mysql://localhost:3306/mytest";
  24. conn = DriverManager.getConnection(url, "root", "123456");
  25. state = conn.createStatement();
  26. prep = conn.prepareStatement("select * from useinfo");
  27. rs = prep.executeQuery();
  28. while (rs.next()) {
  29. int id= rs.getInt("userId");
  30. String name= rs.getString("userName");
  31. String sex = rs.getString("userSex");
  32. System.out.println("从mysql读取的数据:"+id+"---------"+name+"--------"+sex);
  33. }
  34.  
  35. } catch (SQLException e) {
  36. e.printStackTrace();
  37. }finally{
  38.  
  39. try {
  40. if(rs==null) rs.close();
  41. if(prep==null) prep.close();
  42. if(state==null) state.close();
  43. if(conn==null) conn.close();
  44. } catch (SQLException e) {
  45. e.printStackTrace();
  46. }
  47.  
  48. }
  49.  
  50. }
  51. }

二、mysql方式二

使用jdbc.properties配置文件方式

  1. className=com.mysql.jdbc.Driver
  2. url=jdbc\:mysql\://localhost\:3306/mytest
  3. userName=root
  4. password=123456

  

  1. package com.dkt.mysql.util;
  2.  
  3. import java.io.InputStream;
  4. import java.sql.Connection;
  5. import java.sql.Driver;
  6. import java.sql.DriverManager;
  7. import java.sql.PreparedStatement;
  8. import java.sql.ResultSet;
  9. import java.sql.SQLException;
  10. import java.util.Properties;
  11.  
  12. /*
  13. * 反射链接: 什么是反射?
  14. * 我们在程序运行时得到一个字符串,这个字符串是某个类名称,
  15. * 如果要实例化这个类,就需要用到反射。
  16. * 在工程下的src中创建file文件,命名为 jdbc.properties(配置文件)
  17. * 里面存放是键值对的形式。
  18. * 在java 程序中以文件输入流的形式加载进来
  19. *
  20. * 加载驱动 Class.forName();
  21. * oracle: oracle.jdbc.driver.OracleDriver
  22. * mysql: com.mysql.jdbc.Driver
  23. *
  24. * 链接数据库 DriverManager.getConnection(url,user,password);
  25. * mysql:url如下
  26. * jdbc:mysql://localhost:3306/databaseName?userUnicode=true&characterEncoding=utf-8
  27. * "jdbc:mysql://localhost:3306/mytest"
  28. */
  29. public class Uconn {
  30. public static void main(String[] args) {
  31. new Uconn().conn();
  32. }
  33.  
  34. public void conn(){
  35.  
  36. Connection conn=null;
  37. PreparedStatement ps = null;
  38. ResultSet rs = null;
  39. //从配置文件中获得加载驱动信息
  40. InputStream in = getClass().getClassLoader().getResourceAsStream("jdbc.properties");
  41. Properties proper = new Properties();
  42. try {
  43. proper.load(in);
  44. String className = proper.getProperty("className");
  45. String url = proper.getProperty("url");
  46. String userName= proper.getProperty("userName");
  47. String password = proper.getProperty("password");
  48.  
  49. Driver driver = (Driver) Class.forName(className).newInstance();
  50. System.out.println(driver);
  51.  
  52. String sql = " select * from useInfo where userName='娜娜' ";//sql语句,查询useInfo表的数据
  53. conn = DriverManager.getConnection(url, userName, password);
  54. ps = conn.prepareStatement(sql);// 进行sql语句的预编译,防止sql注入
  55. rs = ps.executeQuery();
  56. System.out.println(rs.next());
  57. while (rs.next()) {
  58. int id= rs.getInt("userId");
  59. String name= rs.getString("userName");
  60. String sex = rs.getString("userSex");
  61. System.out.println("从mysql读取的数据:"+id+"---------"+name+"--------"+sex);
  62. }
  63.  
  64. } catch (Exception e) {
  65. e.printStackTrace();
  66. } finally{
  67. try {
  68. if(rs==null) rs.close();
  69. if(ps==null) ps.close();
  70. if(conn==null) conn.close();
  71. } catch (SQLException e) {
  72. e.printStackTrace();
  73. }
  74. }
  75. }
  76. }

三、oracle

  1. package com.dkt.util;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7.  
  8. public class JdbcOracle {
  9. public static void main(String[] args) {
  10. JdbcOracle oracle = new JdbcOracle();
  11. oracle.testOracle();
  12. }
  13.  
  14. /**
  15. * 一个非常标准的连接Oracle数据库的示例代码
  16. */
  17. public void testOracle(){
  18. Connection con = null;// 创建一个数据库连接
  19. PreparedStatement pre = null;// 创建预编译语句对象,一般都是用这个而不用Statement
  20. ResultSet result = null;// 创建一个结果集对象
  21. try
  22. {
  23. Class.forName("oracle.jdbc.driver.OracleDriver");// 加载Oracle驱动程序
  24. System.out.println("开始尝试连接数据库!");
  25. String url = "jdbc:oracle:thin:@localhost:1521:orcl";// 127.0.0.1是本机地址,XE是精简版Oracle的默认数据库名
  26. String user = "scott";// 用户名,系统默认的账户名
  27. String password = "tiger";// 你安装时选设置的密码
  28. con = DriverManager.getConnection(url, user, password);// 获取连接
  29. System.out.println("连接成功!");
  30. String sql = "select * from scott.emp where ename=?";// 预编译语句,“?”代表参数
  31. pre = con.prepareStatement(sql);// 实例化预编译语句
  32. pre.setString(1, "KING");// 设置参数,前面的1表示参数的索引,而不是表中列名的索引
  33. result = pre.executeQuery();// 执行查询,注意括号中不需要再加参数
  34. while (result.next()){
  35. // 当结果集不为空时
  36. System.out.println("编号:" + result.getInt("empno") + ",姓名:"
  37. + result.getString("ename")+",工资:"+result.getInt("sal"));
  38. }
  39. }
  40. catch (Exception e)
  41. {
  42. e.printStackTrace();
  43. }
  44. finally
  45. {
  46. try
  47. {
  48. // 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源
  49. // 注意关闭的顺序,最后使用的最先关闭
  50. if (result != null)
  51. result.close();
  52. if (pre != null)
  53. pre.close();
  54. if (con != null)
  55. con.close();
  56. System.out.println("数据库连接已关闭!");
  57. }
  58. catch (Exception e)
  59. {
  60. e.printStackTrace();
  61. }
  62. }
  63. }
  64.  
  65. }

  

java JDBC链接sqlserver/mysql/oracle的更多相关文章

  1. jdbc连接sqlserver,mysql,oracle

    class xxx{ private static String port = "1433"; private static String ip = "192.168.2 ...

  2. Java JDBC链接Oracle数据库

    package com.test.test; import java.io.FileInputStream;import java.io.FileNotFoundException;import ja ...

  3. Java与SQL Server, MySql, Oracle, Access的连接方法以及一些异常解决

    Java与SQL Server, MySql, Oracle, Access的连接方法以及一些异常解决 I. 概述 1.1 JDBC概念 JDBC(Java Database Connectivity ...

  4. C#操作SqlServer MySql Oracle通用帮助类Db_Helper_DG(默认支持数据库读写分离、查询结果实体映射ORM)

    [前言] 作为一款成熟的面向对象高级编程语言,C#在ADO.Net的支持上已然是做的很成熟,我们可以方便地调用ADO.Net操作各类关系型数据库,在使用了多年的Sql_Helper_DG后,由于项目需 ...

  5. C#操作SqlServer MySql Oracle通用帮助类

    C#操作SqlServer MySql Oracle通用帮助类 [前言] 作为一款成熟的面向对象高级编程语言,C#在ADO.Net的支持上已然是做的很成熟,我们可以方便地调用ADO.Net操作各类关系 ...

  6. 关于在Java中链接SQLServer数据库中失败的原因分析

    首先声明:笔者是Java的初学者,并且一值是走在自学的道路上,长久以来只有“度娘”相伴.(加入了各种Java学习群,基本没有热心帮人解决问题的.可以理解-_-!!!)大神级的人物就不必看拙文了,没有什 ...

  7. Java jdbc链接 mySQL 写的crud

    1.JDBC(Java Data Base Connectivity java数据库连接)概念: 是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编 ...

  8. Java jdbc访问sqlserver,oracle数据库

    1.JDBC访问Oracle数据库 public class Jdbc_Oracle { // 静态代码块,只会执行一次,类似C#静态构造方法 static { try { // 加载数据库驱动一次 ...

  9. Java jdbc访问sqlserver,oracle数据库 DEMO

    1.JDBC访问Oracle数据库 public class Jdbc_Oracle { // 静态代码块,只会执行一次,类似C#静态构造方法 static { try { // 加载数据库驱动一次 ...

随机推荐

  1. 判断H5页面环境是否在小程序的webview中

    用小程序提供的wx.miniProgram.getEnv可以获取环境参数,但是它有个问题就是无法在非微信环境下判断.所以在使用wx.miniProgram.getEnv前得先判断是否在微信环境中. 解 ...

  2. 如何实现java的四则运算

    很多语言底层对四则运算都有内部封装, 我们还是要重复造下轮子,不为别的, 就是为了面试可以多装一分 b, 假设你已经了解了什么是二进制, 什么是异或, 什么是移位运算, 什么是与, 这些不懂就别硬上( ...

  3. alpha-beta搜索算法

    alpha-beta搜索(min-max搜索): 简称mfs,用来解决双方最优决策博弈问题. 核心思想:在搜索树中,下一层越小,对当前层越有利,由于取max,一旦下一层出现了比其他孩子结果更大的值,那 ...

  4. 3dsmax2016卸载/安装失败/如何彻底卸载清除干净3dsmax2016注册表和文件的方法

    3dsmax2016提示安装未完成,某些产品无法安装该怎样解决呢?一些朋友在win7或者win10系统下安装3dsmax2016失败提示3dsmax2016安装未完成,某些产品无法安装,也有时候想重新 ...

  5. (转)用mysql自带工具mysqlslap对数据库进行压力测试

    http://aolens.blog.51cto.com/7021142/1901557-------用mysql自带工具mysqlslap对数据库进行压力测试 mysqlslap是mysql自带的工 ...

  6. Js框架设计之DomReady

    一.在介绍DomReady之前,先了解下相关的知识 1.HTML是一种标记语言,告诉我们这页面里面有什么内容,但是行为交互则要通过DOM操作来实现,但是注意:不要把尖括号里面的内容看作是DOM! 2. ...

  7. selenium+Python(截图保存错误页面)

    异常捕捉与错误截图 创建错误截图文件夹,目录结果如下: 用例不可能每一次运行都成功,肯定运行时候有不成功的时候,关键是我们捕捉到错误,并以把并错误截图保存,这将是一个非常棒的功能,也会给我们错误定位带 ...

  8. java中String,StringBuffer与StringBuilder的区别??

    本文着重介绍下,应该在何时恰当的使用string,stringbuffer,stringbuilder. 1,执行速度 StringBuilder >  StringBuffer  >  ...

  9. css3画半圆

    border-radius制作半圆与制作圆形的方法是一样的,只是元素的宽度与圆角方位要配合一致,不同的宽度和高度比例,以及圆角方位,可以制作上半圆.下半圆.左半圆和右半圆效果.例如:.semicirc ...

  10. CCF 出现次数最多的数 201312-1

    出现次数最多的数 问题描述 试题编号: 201312-1 试题名称: 出现次数最多的数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定n个正整数,找出它们中出现次数最多的 ...