从.net到java系列之jdbc

需要学习java,记录从。net到java的笔记。

下载jar包

首先针对于不同的数据库需要下载相应的jar包。类似于.net 中连接不同数据库的dll,只是.net直接在framework里面包含了,这个需要自己到对应的官网上下载。


主要包:

import com.mysql.jdbc.Connection;

import com.mysql.jdbc.PreparedStatement;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;


驱动名称等:http://www.cnblogs.com/kunpengit/archive/2011/12/13/2285933.html


数据库


驱动类名


URL格式


Oracle


oracle.jdbc.driver.OracleDriver


jdbc:oracle:thin:@hostip:1521:dbname


Sybase


com.sybase.jdbc2.jdbc.SybDriver


jdbc:sybase:Tds:hostip:4100/dbname


Mysql


com.mysql.jdbc.Driver


jdbc:mysql://hostip:3306/dbname?useUnicode=true&characterEncoding=GBK


SQLServer 2000


com.microsoft.jdbc.sqlserver.SQLServerDriver


jdbc:microsoft:sqlserver://hostip:1433;DatabaseName=dbname


SQLServer 2005


com.microsoft.sqlserver.jdbc.SQLServerDriver


jdbc:sqlserver://hostip:1433;DatabaseName=dbname


SQLServer 7.0


net.sourceforge.jtds.jdbc.Driver


jdbc:jtds:sqlserver://hostip:1433/dbname


DB2


com.ibm.db2.jcc.DB2Driver


jdbc:db2://hostip:50000/dbname


Informix


com.informix.jdbc.IfxDriver


jdbc:informix-sqli://hostip:port/dbname:informixserver=<dbservername>


主要对象PreparedStatement (为了好记,可以当做command对象)

boolean execute() 
在此 PreparedStatement 对象中执行 SQL 语句,该语句可以是任何种类的 SQL 语句。
ResultSet executeQuery() 
在此 PreparedStatement 对象中执行 SQL 查询,并返回该查询生成的 ResultSet 对象。
int executeUpdate() 
在此 PreparedStatement 对象中执行 SQL 语句,该语句必须是一个 SQL 数据操作语言(Data Manipulation Language,DML)语句,比如 INSERTUPDATE 或 DELETE 语句;或者是无返回内容的 SQL 语句,比如 DDL 语句。

防止sql注入

pstmt.setString(1, "pf");  类似与param

代码片段:

public static int update() {

Connection conn = getConn();

int i = 0;

String sql = "update user set username=? where userid=?";

PreparedStatement pstmt;

try {

pstmt = (PreparedStatement) conn.prepareStatement(sql);

pstmt.setString(1, "pf");

pstmt.setString(2, "1");

i = pstmt.executeUpdate();

System.out.println("resutl: " + i);

pstmt.close();

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

return i;

}


返回数据集合

与c#有个比较大的不同点,c#中ado.net里面关于数据操作的封装类,像dataset、datatable,这些在java中都没有与之对应的类。返回数据查询的结果只有ResultSet。

因此,如果想返回结果数据结合需要自己实现。以下是实现示例:

首先是实体类

package testJDBC;

public class userEntity {
    private String _userid;
    private String _userName;

    public String Userid(){
        return this._userid;
    }
    public void SetUserid(String NewValue){
        this._userid=NewValue;
    }

    public String UserName(){
        return this._userName;

    }
    public void SetUserName(String NewValue){
        this._userName=NewValue;
    }
}

然后是数据访问类中的具体实现

public static ArrayList<userEntity> getUserList() {
        ArrayList<userEntity> userList = new ArrayList<userEntity>();
        Connection conn = getConn();
        String sql = "select * from user";
        PreparedStatement pstmt;
        try {
            pstmt = (PreparedStatement) conn.prepareStatement(sql);
            ResultSet rs = pstmt.executeQuery();
            int col = rs.getMetaData().getColumnCount();

            while (rs.next()) {
                userEntity tmpUser = new userEntity();
                tmpUser.SetUserid(rs.getString("userid"));
                tmpUser.SetUserName(rs.getString("username"));
                userList.add(tmpUser);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return userList;
    }
时间: 2024-08-02 00:25:31

从.net到java系列之jdbc的相关文章

Java系列之JDBC和ODBC之间的区别与联系

JDBC简介 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,它是Java十三个规范之一.可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名. ODBC简介 开放数据库互连(Open Database Connectivity,ODBC)是微软公司开放服务结构(WOSA

老调重弹:JDBC系列 之 &lt;JDBC层次结构和基本构成&gt;

前言 最近在研究Mybatis框架,由于该框架基于JDBC,想要很好地理解和学习Mybatis,必须要对JDBC有较深入的了解.所以便把JDBC 这个东东翻出来,老调重弹,好好总结一番,作为自己的笔记,也是给读者一个参考---本篇博文是我的上篇博文老调重弹:JDBC系列 之 <驱动加载原理全面解析>的续文,主要梳理一下JDBC的层次结构和基本构成.以下是本文的组织内容(用户可以点击上面的目录栏查看): JDBC的层次结构 总体而言,JDBC包含以下几大角色 : Driver.DriverMan

Java系列笔记(1) - Java 类加载与初始化

目录 类加载器 动态加载 链接 初始化 示例 类加载器 在了解Java的机制之前,需要先了解类在JVM(Java虚拟机)中是如何加载的,这对后面理解java其它机制将有重要作用. 每个类编译后产生一个Class对象,存储在.class文件中,JVM使用类加载器(Class Loader)来加载类的字节码文件(.class),类加载器实质上是一条类加载器链,一般的,我们只会用到一个原生的类加载器,它只加载Java API等可信类,通常只是在本地磁盘中加载,这些类一般就够我们使用了.如果我们需要从远

完整java开发中JDBC连接数据库代码和步骤

完整java开发中JDBC连接数据库代码和步骤 JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String  className)实现. 例如: try{ //加载MySql的驱动类 Class.forName("com.mysql.jdbc.Driver") ; }catch(Class

Java系列笔记(2) - Java RTTI和反射机制

目录 前言 传统的RTTI 反射 反射的实现方式 反射的性能 反射与设计模式 前言 并不是所有的Class都能在编译时明确,因此在某些情况下需要在运行时再发现和确定类型信息(比如:基于构建编程,),这就是RTTI(Runtime Type Information,运行时类型信息). 在java中,有两种RTTI的方式,一种是传统的,即假设在编译时已经知道了所有的类型:还有一种,是利用反射机制,在运行时再尝试确定类型信息. 本文主要讲反射方式实现的RTTI,建议在阅读本文之前,先了解类的加载机制(

理解JNDI中 java:comp/env/jdbc/datasource 与 jdbc/datasource 的不同之处(转)

在描述JNDI,例如获得数据源时,JNDI地址有两种写法,例如同是  jdbc/testDS 数据源: A:java:comp/env/jdbc/testDS B:jdbc/testDS   这两种写法,配置的方式也不尽相同,第一种方法应该算是一种利于程序移植或迁移的方法,它的实现与“映射”的概念相同,而B方法,则是一个硬引用. java:comp/env 是环境命名上下文(environment naming context(ENC)),是在EJB规范1.1以后引入的,引入这个是为了解决原来J

JAVA数据库编程(JDBC技术)-入门笔记

本菜鸟才介入Java,我现在不急着去看那些基本的语法或者一些Java里面的版本的特征或者是一些晋级的知识,因为有一点.Net的OOP编程思想,所以对于Java的这些语法以及什么的在用到的时候在去发现学习一下.我现在很迫不及待用JAVA想来实现以下对数据库的增删改查.想实现就来看Java是怎么操作数据库的,回想下.Net里你可能会配置web.Config,或者你去写一些DBhelper类然后调用里面的自己定义的一些增删改查的方法,更或者你去配一些数据控件等等往往发现操作基本都是一体化的简单.现在面

java中使用jdbc链接数据库

jdbc:java是通过jdbc技术实现对各种数据库的访问的,换句话说,jdbc是java应用程序与各种数据库之间进行对话的媒介 工具/原料 jdbc架包 方法/步骤 1.引用各种语言包:import java.sql.*;//这里面包含了Connection/DriverManager/Statement/ResultSet等各种包 2.加载jdbc驱动:Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//里

java核心技术之JDBC (一)

JDBC 1.什么是JDBC JDBC的全称是Java DataBase Connection,也就是Java数据库连接,我们可以 用它来操作关系型数据库.JDBC接口及相关类在java.sql包和javax.sql包里.我们 可以用它来连接数据库,执行SQL查询,存储过程,并处理返回的结果. JDBC接口让Java程序和JDBC驱动实现了松耦合,使得切换不同的数据库变得更加 简单 2.jdbc使用过程 1.     注册驱动 (Driver) 2.     建立连接(创建Connection)