idea上运行JDBC代码介绍及其配置(mysql版)

跟着慕课网上学着打了一段java的JDBC的代码,然后一运行就gg,然后查原因查了几个小时终于得出了解决方案

首先检查一下是不是缺少mysql connecter,这个百度一下,来到mysql官网,选择JDBC Driver for MySQL (Connector/J),随便选一个,下好解压,提取出里面jar文件放进一个放进tomcat的lib目录下(记住位置),我解压出来的叫mysql-connector-java-5.1.45-bin

然后来到你写好java代码的页面,左上角点开有个project structure,点开,选择modules,选择dependencies下module source,点击最右边的小绿色加号,选择你刚刚解压出来的jar文件,这样jar包就导入到project里面了,代码应该能运行无误了,当然要验证是否连接上了数据库你先用dos或者navicat在数据库里写张数据表

附上我运行成功的代码:

import java.sql.*;
import java.util.*;
public class mys {
    private static final String url="jdbc:mysql://localhost:3306/test";//test为我的数据库的名字
    private static final String user="root";//用户名
    private static final String password="root";//密码
    public static void main(String []args) throws Exception//记住要写抛出异常,否则就要用try catch语句
    {
        Class.forName("com.mysql.jdbc.Driver");//加载驱动
        Connection con=DriverManager.getConnection(url,user,password);//连接数据库
        Statement stm=con.createStatement();
        ResultSet re=stm.executeQuery("select * from inf");//执行询问语句,re中保存结果的集合
        while(re.next())//遍历结果
        {
            System.out.println(re.getString("name")+","+re.getInt("age")+","+re.getInt("tel"));//当然你的数据表要有这几个属性
        }
    }
}

然后介绍一些常用的jdbc连接sql语句:

Class.forName("com.mysql.jdbc.Driver");这句话的意思是加载mysql的驱动程序,不同的数据库这句话不同

Connection con=DriverManager.getConnection(url,user,password)这句话是获得连接数据库后返回的对象

url里面放的是jdbc:mysql://localhost:3306/+你要操作的数据库名字,user和password显而易见是你登录数据库的账号密码

createStatement():返回向数据库发送sql的statement对象,该对象用于接收对数据库加入增删查改的操作语句。

prepareStatement(sql) :创建向数据库发送预编译sql的PrepareSatement对象,该对象只是预编译生成,用通配符?代替不确定的字段,后面再用一系列的set函数将?替换掉,在调用execute函数之前是不会生成Satement对象的

重点介绍statement接口(常用):

Statement:由createStatement创建,用于发送简单的SQL语句(不带参数)。

PreparedStatement :继承自Statement接口,由preparedStatement创建,用于发送含有一个或多个参数的SQL语句。PreparedStatement对象比Statement对象的效率更高

并且可以防止SQL注入,所以我们一般都使用PreparedStatement。

常用statement方法:

execute(String sql):运行语句,返回是否有结果集

executeQuery(String sql):运行select语句,返回ResultSet结果集。

executeUpdate(String sql):运行insert/update/delete操作,返回更新的行数。

addBatch(String sql) :把多条sql语句放到一个批处理中。

executeBatch():向数据库发送一批sql语句执行。

然后是接收上面方法返回的ResultSet接口:

getString(int index)、getString(String columnName):获得在数据库里是varchar、char等类型的数据对象。

getFloat(int index)、getFloat(String columnName):获得在数据库里是Float类型的数据对象。

getDate(int index)、getDate(String columnName):获得在数据库里是Date类型的数据。

getBoolean(int index)、getBoolean(String columnName):获得在数据库里是Boolean类型的数据。

getObject(int index)、getObject(String columnName):获取在数据库里任意类型的数据。

ResultSet还提供了对结果集进行滚动的方法:

next():移动到下一行

Previous():移动到前一行

absolute(int row):移动到指定行

beforeFirst():移动resultSet的最前面。

afterLast() :移动到resultSet的最后面。

然后介绍一些sql语句的知识:

迷糊查询:%可以代替0个或多个字符

比如:select * from students where name like '王%' 这个句子可以把表students里面name符合的王或者王xx(任意数目)的记录返回,如果是%王%就是查询包含王的所有记录

随机查询:用Math.random()函数返回一个0-1之间的小数,那么直接对该数*listsize再用int取整可以获得集合范围的一个数字,配合absolute函数可以查询随机数字的记录

预处理语句:上面已经叙述,举个例子

sql=con.prepareStatement("select * from tb1 where id



你可能感兴趣的:(日志,Java学习,MySQL学习)