java06_jdbc

来源:互联网 发布:c语言使用cos函数 编辑:程序博客网 时间:2024/06/06 01:49

jdbc   Java DataBase Connectivity,java数据库连接

 

有了数据库  才有了人与计算机之间信息的交互

为了Java中的数据永久的保存下来 存到数据库里 修改    

 

制作数据库的人会制作对应的驱动 使用户能更好的连接和使用当前的数据库

 

连接数据库需要用到三个对象

Connection 连接对象    连接数据库

stmtement 语句对象    发送SQL语句

resultSet   结果集对象  数据库返回数据结果 J

因为Java同一个应用 只能连接一个database

准备四个参数

1. 连接的数据库地址  IP    指明连接

2. 用户名

3. 密码

4. 端口  pid  3306  /3308

四个参数 合并3

 

URL = 数据库ip/库/端口  每个数据库的url 写法都不一样

用户名

密码

1.建立连接  connection   需要使用参数 URL用户名密码

  加载数据库的驱动   驱动从网上下载    .jar 压缩文件

  jarJava class专用压缩包  第三方开源类库

1. 把驱动包拷贝到功能的根目录

2. 把包构建build到工程中 才能使用

2.使用连接来建立交互的语句对象  用来发送SQL

 

 

 

 

 

 

package com.hzyc.tools;

 

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

 

public class DbTools {

/* //如果有写数据 想让类加载或者构造方法调用就初始化了

public DbTools(){

}

private static Connection conn = null;

private static Statement stmt = null;

private static ResultSet rs = null;

private static String url = "jdbc:mysql://localhost:3306/hostelsystem";//非安装版端口写成

3308,数据库名根据自己的改

//localhost 在这里表示的是本机的服务器 即数据库的ip

private static String username = "root";//数据库名

private static String password = "mysql";//数据库密码

static{

try{

Class.forName("com.mysql.jdbc.Driver");//加载驱动包

conn = DriverManager.getConnection(url, username, password);//连接数据库

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public int update(String sql){

int result = 0;

try{

stmt = conn.createStatement();

result = stmt.executeUpdate(sql);

}catch(SQLException e){

e.printStackTrace();

}

return result;

}

//获取多列数据

public List<Map<String,Object>> query1(String sql){

List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();

try{

stmt = conn.createStatement();

rs = stmt.executeQuery(sql);

ResultSetMetaData rsmd = rs.getMetaData();

int count = rsmd.getColumnCount();

while(rs.next()){

Map<String,Object> map = new HashMap<String,Object>();

for(int i = 1; i<=count; i++){

//取出每一列的名字

String columnName = rsmd.getColumnName(i);

Object columbValue = rs.getObject(columnName);

map.put(columnName, columbValue);

}

list.add(map);

}

}catch(SQLException e){

e.printStackTrace();

}

return list;

}

//获取单列数据

public static List<Object> query2(String sql){

List<Object>list=new ArrayList<Object>();

try {

stmt=conn.createStatement();

rs=stmt.executeQuery(sql);

while(rs.next()){

list.add(rs.getObject(1));

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return list;

}

/**

 * 释放资源

 * 关闭连接

 */

public void close(){

try{

if(rs != null){

rs.close();

}

if(stmt != null){

stmt.close();

}

if(conn != null){

conn.close();

}

}catch(SQLException e){

e.printStackTrace();

}

}

 

}

原创粉丝点击