体育资讯网

您现在的位置是:首页 > 分类13 > 正文

分类13

mysqljdbc源码(commysqljdbc)

hacker2022-06-09 00:52:24分类1357
本文目录一览:1、谁能够帮我找份基于JAVA和MYSQL的应用程序源码

本文目录一览:

谁能够帮我找份基于JAVA和MYSQL的应用程序源码

package com;

import java.sql.*;

public class MysqlJdbc {

public static void main(String args[]) {

try {

Class.forName("com.mysql.jdbc.Driver"); //加载MYSQL JDBC驱动程序

System.out.println("Success loading Mysql Driver!");

}

catch (Exception e) {

System.out.print("Error loading Mysql Driver!");

e.printStackTrace();

}

try {

Connection connect = DriverManager.getConnection(

"jdbc:mysql://localhost:3306/sakila","root","123");

//连接URL为 jdbc:mysql//服务器地址/数据库名

//后面的2个参数分别是登陆用户名和密码

System.out.println("Success connect Mysql server!");

Statement stmt = connect.createStatement();

ResultSet rs = stmt.executeQuery("select * from actor");

while (rs.next()) {

System.out.println(rs.getString("actor_id")+"\t"+rs.getString("first_name")+"\t"+"\t"+rs.getString("last_name")+"\t"+rs.getString("last_update"));

}

}

catch (Exception e) {

System.out.print("get data error!");

e.printStackTrace();

}

}

}

你有一个简单的数据库的源代码吗?最好用Java实现的...

class ConnectionProvider{

private static String JDBC_DRIVER;

private static String DB_URL;

private static String DB_USER;

private static String DB_PASSWORD;

public ConnectionProvider()

{

JDBC_DRIVER = "com.mysql.jdbc.Driver"

DB_URL = "jdbc:mysql://localhost:3306/u-disk";

DB_USER = "root";

DB_PASSWORD = "root"

};

public Connection getConnection()

{

try {

Class.forName(JDBC_DRIVER);

} catch (Exception e) {

System.out.println("驱动文件路径有误!");

}

}

Connection con = null;

try {

con = DriverManager.getConnection(DB_URL, DB_USER,

DB_PASSWORD);

} catch (SQLException e) {

System.out.println("数据库连接建立异常!\n@shy2850@" + e.getMessage() +

e.getCause());

}

System.out.println("得到连接:Connection " + ConnectionPool.connections.size() + 1);

return new ConnectionImpl(con);

}

}

可以使用这个包装的数据库连接数据源在DAO工具类中使用:

package com.jdbc;

import java.sql.*;

/**课题:封装数据库的增删改查的工具类的实现。

*

* 假设相关数据库的表结构如下:

* 表名:user

* 列名及属性:id(int 自增),name(varchar(20)),tele(char(12)),birthday(date)

* @author shy2850

*/

public class UserDAO {

Connection conn;

public UserDAO(Connection conn) {

this.conn = conn;

}

public int save(User user) throws SQLException {

String sql = "insert into user values(0,?,?,?)";

PreparedStatement pstmt = conn.prepareStatement(sql);

pstmt.setString(1, user.getName());

pstmt.setString(2, user.getTele());

pstmt.setDate(3, user.getBirthday());

int n = pstmt.executeUpdate();

pstmt.close();

return n;

}

public int delete(User user) throws SQLException{

String sql = "delete from user where id = "+user.getId();

Statement stmt = conn.createStatement();

int n = stmt.executeUpdate(sql);

stmt.close();

return n;

}

public int update(User user) throws SQLException{

String sql = "update user set name=?, tele=?, birthday=? where id = "+user.getId();

PreparedStatement pstmt = conn.prepareStatement(sql);

pstmt.setString(2, user.getName());

pstmt.setString(3, user.getTele());

pstmt.setDate(4, user.getBirthday());

int n = pstmt.executeUpdate(sql);

pstmt.close();

return n;

}

public User getUser(Integer id) throws SQLException{

String sql = "select * from user where id = " + id;

Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery(sql);

User user = getUserFromResultSet(rs);

rs.close();

stmt.close();

return user;

}

static User getUserFromResultSet(ResultSet rs) throws SQLException{

Integer id = rs.getInt("id");

String name= rs.getString("name");

String tele= rs.getString("tele");

Date birthday = rs.getDate("birthday");

return new User(id, name, tele, birthday);

}

}

/**

* 构建数据库表的java类映射

*/

class User{

private Integer id;

private String name;

private String tele;

private Date birthday;

public User() {

}

public User(Integer id, String name, String tele, Date birthday) {

super();

this.id = id;

this.name = name;

this.tele = tele;

this.birthday = birthday;

}

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getTele() {

return tele;

}

public void setTele(String tele) {

this.tele = tele;

}

public Date getBirthday() {

return birthday;

}

public void setBirthday(Date birthday) {

this.birthday = birthday;

}

}

spring中配置MySql数据源,怎样配置数据库信息

spring中配置数据源的几种常见方式:

#mysql 数据库配置(jdbc.properties)

jdbc.driverClassName=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/databaseName?useUnicode=truecharacterEncoding=UTF-8

jdbc.username=root

jdbc.password=root

1.使用spring自带的数据源org.springframework.jdbc.datasource.DriverManagerDataSource;

方式一:

bean id="propertyConfigurer" class="3c3d-3f8b-32a8-2c18 org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" p:location="/WEB-INF/jdbc.properties" /

bean id="dataSource" class="3f8b-32a8-2c18-09bf org.springframework.jdbc.datasource.DriverManagerDataSource"

p:driverClassName="${jdbc.driverClassName}"

p:url="${jdbc.url}"

p:username="${jdbc.username}"

p:password="${jdbc.password}" /

p标记需要:xmlns:p=""

DriverManagerDataSource源码实现:

public class DriverManagerDataSource extends AbstractDriverBasedDataSource {

public DriverManagerDataSource() {

}

public DriverManagerDataSource(String url) {

}

public DriverManagerDataSource(String url, String username, String password) {

}

public DriverManagerDataSource(String url, Properties conProps) {

}

public void setDriverClassName(String driverClassName) {

}

protected Connection getConnectionFromDriver(Properties props) throws SQLException {

}

protected Connection getConnectionFromDriverManager(String url, Properties props) throws SQLException {

}

}

方式二:

bean id="dataSource" class="32a8-2c18-09bf-061f org.springframework.jdbc.datasource.DriverManagerDataSource"

property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /

property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:ORCL" /

property name="username" value="root" /

property name="password" value="root" /

/bean

2.DBCP数据源;

DBCP(DataBase connection pool)。是 apache 上的一个 java 连接池项目mysqljdbc源码,也是 tomcat 使用的连接池组件。单独使用dbcp需要2个包:commons-dbcp.jar,commons-pool.jar由于建立数据库连接是一个非常耗时耗资源的行为mysqljdbc源码,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。

bean id="dataSource" destroy-method="close" class="2c18-09bf-061f-1e78 org.apache.commons.dbcp.BasicDataSource"

property name="driverClassName" value="${jdbc.driverClassName}" /

property name="url" value="${jdbc.url}" /

property name="username" value="${jdbc.username}" /

property name="password" value="${jdbc.password}" /

/bean

DBCP实现:

class JdbcUtil

{

private static BasicDataSource bds;

static

{

if(bds==null)

{

bds= new BasicDataSource();

}

//分别设置数据库的连接参数

bds.setDriverClassName();

bds.setUrl();

bds.setUsername();

bds.setPassword();

}

public static Connection getConnection()

{

return bds.getConnection();

}

3.C3P0数据源;

C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的有Hibernate,Spring等。

依赖jar包:c3p0-0.9.1.jar、c3p0-0.9.1.2.jar、c3p0-0.9.1-pre6.jar

c3p0与dbcp区别:

dbcp没有自动回收空闲连接的功能

c3p0有自动回收空闲连接功能

bean id="dataSource" class="09bf-061f-1e78-0ca9 com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"

property name="driverClass"valueoracle.jdbc.driver.OracleDriver/value/property

property name="jdbcUrl"valuejdbc:oracle:thin:@localhost:1521:Test/value/property

property name="user"valueroot/value/property

property name="password"valueroot/value/property

!--连接池中保留的最小连接数。--

property name="minPoolSize" value="10" /

!--连接池中保留的最大连接数。Default: 15 --

property name="maxPoolSize" value="100" /

!--最大空闲时间,1800秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 --

property name="maxIdleTime" value="1800" /

!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 --

property name="acquireIncrement" value="3" /

property name="maxStatements" value="1000" /

property name="initialPoolSize" value="10" /

!--每60秒检查所有连接池中的空闲连接。Default: 0 --

property name="idleConnectionTestPeriod" value="60" /

!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 --

property name="acquireRetryAttempts" value="30" /

property name="breakAfterAcquireFailure" value="true" /

property name="testConnectionOnCheckout" value="false" /

/bean

4.JNDI数据源;

如果应用配置在高性能的应用服务器(如WebLogic或Websphere等)上,我们可能更希望使用应用服务器本身

提供的数据源。应用服务器的数据源 使用JNDI开放调用者使用,Spring为此专门提供引用JNDI资源的

JndiObjectFactoryBean类。下面是一个简单的配置:

方式一:

bean id="dataSource" class="061f-1e78-0ca9-19de org.springframework.jndi.JndiObjectFactoryBean"

property name="jndiName" value="java:comp/env/jdbc/bbt"/

/bean

value值即JNDI的名称

方式二:

bean id="queueTarget" class="1e78-0ca9-19de-063d org.springframework.jndi.JndiObjectTargetSource"

property name="jndiName"

valuequeue/testQueue/value

/property

/bean

方式三:

如果不使用JndiTemplate实现InitialContext环境变量的配置,则需要jndi.properties文件(放在classpath中,一般放在src下面),内容如下

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory

java.naming.provider.url=jnp://localhost:1099

java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces

方式四:

使用JndiTemplate实现InitialContext环境变量的配置,例如

bean id="queueTarget" class="0ca9-19de-063d-fec0 org.springframework.jndi.JndiObjectTargetSource"

property name="jndiName"

valuequeue/testQueue/value

/property

property name="jndiTemplate"

ref local="jndiTemplate"/

/property

/bean

bean id="jndiTemplate" class="19de-063d-fec0-b219 org.springframework.jndi.JndiTemplate"

property name="environment"

props

prop key="java.naming.factory.initial"org.jnp.interfaces.NamingContextFactory/prop

prop key="java.naming.provider.url"jnp://localhost:1099/prop

prop key="java.naming.factory.url.pkgs"org.jboss.naming:org.jnp.interfaces/prop

/props

/property

/bean

如何找到mysql-jdbc驱动源码

在工程中右键新建file,命名为jdbc.properties

创建完毕如图:

在jdbc.properties文件中输入如下信息,分别是数据库的驱动,连接,用户名和密码

新建JdbcTest2.java类

输入如下代码:

代码说明:

这段代码是读取配置文件,把配置文件中的各个项通过名称读取出来

这段代码是通过反射来创建Driver对象,反射就是类的实例化

在主函数中输入如下,测试方法

运行之后的结果如下,表示连接成功!

如何才能让自己看懂MySQL源码,并且能够自己写出相应的patch

1. 网络模型,MySQL 的网络模型太老了, one connection per thread,代码很简单。

2. 协议解析,MySQL 的 协议还算比较简单的,但是设计的 prepare 的协议就要花点时间,我写个一些分析的文章和图,网上你搜索下。这里你要花时间把 mysql client 这个客户端的代码都看看,这样对你往后无论开发 jdbc还是 libmysqlclient 的项目都有帮助。

3. SQL 解析,咳咳,不好意思大难题了。不过还好对于编译原理的知识你只需要了解前端的词法解析和 yacc 的使用即可,你可以参考 flex and bison 这本书 ,仅仅需要看懂 yy 和 lex 文件即可,yy 比较长,但里面涵盖了所有的 MySQL 所支持的 sql 的语法。我也写过一个简单的 sql parser,在我的 github 上。

4.replication,这个不复杂就几个文件。

eclipse怎么关联mysql驱动的源码

工具mysqljdbc源码

eclipse

方法:

在工程中右键新建filemysqljdbc源码,命名为jdbc.properties

创建完毕如图:

在jdbc.properties文件中输入如下信息mysqljdbc源码,分别是数据库mysqljdbc源码的驱动,连接,用户名和密码

新建JdbcTest2.java类

输入如下代码:

代码说明:

这段代码是读取配置文件,把配置文件中的各个项通过名称读取出来

这段代码是通过反射来创建Driver对象,反射就是类的实例化

在主函数中输入如下,测试方法

运行之后的结果如下,表示连接成功mysqljdbc源码

发表评论

评论列表

  • 青迟淤浪(2022-06-09 11:37:22)回复取消回复

    aSource" class="c22d-3c3d-3f8b-32a8 org.springframework.jdbc.datasource.DriverManagerDataSource" property name="driverClassName" value="oracle.jdb

  • 柔侣辞别(2022-06-09 01:29:42)回复取消回复

    ring等。依赖jar包:c3p0-0.9.1.jar、c3p0-0.9.1.2.jar、c3p0-0.9.1-pre6.jarc3p0与dbcp区别:dbcp没有自动回收空闲连接的功能c3p0有自动回收空闲连接功能bean id="d

  • 馥妴森槿(2022-06-09 01:14:12)回复取消回复

    懂MySQL源码,并且能够自己写出相应的patch1. 网络模型,MySQL 的网络模型太老了, one connection per thread,代码很简单。2. 协议解析,MySQL 的 协议还算比较

  • 青迟绅刃(2022-06-09 12:28:45)回复取消回复

    9.1.jar、c3p0-0.9.1.2.jar、c3p0-0.9.1-pre6.jarc3p0与dbcp区别:dbcp没有自动回收空闲连接的功能c3p0有自动回收空闲连接功能bean id="dataSource" class="2c18-09bf-061f-1e78 com.mchange.v2.c3p0.ComboP

  • 嘻友岛徒(2022-06-09 06:26:10)回复取消回复

    ser(id, name, tele, birthday); }}/** * 构建数据库表的java类映射 */class User{ private Integer id; privat