日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

mysql memcached java_java缓存技术memcached实例

發(fā)布時(shí)間:2023/12/10 数据库 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql memcached java_java缓存技术memcached实例 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1 下載memcached-1.2.1-win32.zip? 并且解壓.

2 新建web project項(xiàng)目 名字自己取,然后導(dǎo)入必要的包,alisoft-xplatform-asf-cache-2.5.1.jar,commons-logging-1.0.3.jar,log4j-1.2.13.jar

3 新建類 user.java

package bean;

import java.io.Serializable;

public class User implements Serializable{

/**

* 序列號(hào)

*/

private static final long serialVersionUID = -3896605600471191953L;

private int uid;

private String uname;

private String upass;

public int getUid() {

return uid;

}

public void setUid(int uid) {

this.uid = uid;

}

public String getUname() {

return uname;

}

public void setUname(String uname) {

this.uname = uname;

}

public String getUpass() {

return upass;

}

public void setUpass(String upass) {

this.upass = upass;

}

}

4 新建 JdbcConnector.java

package util;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

public class JdbcConnector {

// 定義數(shù)據(jù)庫(kù)連接常量

private final static String DRIVER = "com.mysql.jdbc.Driver";

private final static String URL = "jdbc:mysql://192.168.1.13:3306/test";

private final static String DBNAME = "root";

private final static String DBPASS = "123456";

/**

* 得到數(shù)據(jù)庫(kù)連接

* @return

* @throws ClassNotFoundException

* @throws SQLException

*/

public Connection getConn()throws ClassNotFoundException,SQLException {

// 加載驅(qū)動(dòng)

Class.forName(DRIVER);

// 通過(guò)DriverManager對(duì)象得到連接

Connection conn = DriverManager.getConnection(URL,DBNAME,DBPASS);

// 返回?cái)?shù)據(jù)庫(kù)連接

return conn;

}

}

5 新建 UserDao.java

package util;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.List;

import bean.User;

import com.mysql.jdbc.Connection;

import com.mysql.jdbc.PreparedStatement;

import com.mysql.jdbc.ResultSet;

public class UserDao extends JdbcConnector {

// 定義全局變量

Connection conn = null;

PreparedStatement pstmt = null;

ResultSet rs = null;

/**

* 根據(jù)Id查詢用戶

* @param uid

* @return

*/

public User getUserById(int uid) {

// 創(chuàng)建User對(duì)象

User user = null;

// 創(chuàng)建SQL語(yǔ)句

String sql = "select * from user where uid=?";

try {

// 獲得數(shù)據(jù)庫(kù)連接

conn = (Connection) this.getConn();

// 通過(guò)Connection對(duì)象創(chuàng)建PrepareStatement對(duì)象

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

// 設(shè)置SQL語(yǔ)句的參數(shù)

pstmt.setInt(2, uid);

// 執(zhí)行查詢,將查詢結(jié)果賦給ResultSet對(duì)象

rs = (ResultSet) pstmt.executeQuery();

// 遍歷指針

while (rs.next())

{

user = new User();

user.setUid(rs.getInt("uid"));

user.setUname(rs.getString("uname"));

user.setUpass(rs.getString("upass"));

}

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

return user;

}

/**

* 查詢所有用戶

* @return

*/

@SuppressWarnings("unchecked")

public List getUserList() {

// 創(chuàng)建ArrayList對(duì)象

List userList = new ArrayList();

// 創(chuàng)建SQL對(duì)象

String sql = "select * from user";

try {

conn = (Connection) this.getConn();

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

rs = (ResultSet) pstmt.executeQuery();

while (rs.next())

{

User user = new User();

user.setUid(rs.getInt("uid"));

user.setUname(rs.getString("uname"));

user.setUpass(rs.getString("upass"));

userList.add(user);

}

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

return userList;

}

}

6 新建 MemcachedManager.java

package memcachedTest;

import java.util.Date;

import java.util.List;

import util.UserDao;

import bean.User;

import com.alisoft.xplatform.asf.cache.memcached.client.MemCachedClient;

import com.alisoft.xplatform.asf.cache.memcached.client.SockIOPool;

public class MemcachedManager {

// 創(chuàng)建MemCachedClient全局對(duì)象

private static MemCachedClient mcc = new MemCachedClient();

static {

// 創(chuàng)建服務(wù)器列表及其權(quán)重

String[] servers = {"127.0.0.1:11211"};

Integer[] weights = {3};

// 創(chuàng)建Socket連接池對(duì)象

SockIOPool pool = SockIOPool.getInstance();

// 設(shè)置服務(wù)器信息

pool.setServers(servers);

pool.setWeights(weights);

pool.setFailover(true);

// 設(shè)置初始連接數(shù)、最小和最大連接數(shù)以及最大處理時(shí)間

pool.setInitConn(5);

pool.setMinConn(5);

pool.setMaxConn(250);

pool.setMaxIdle(1000*60*60*6);

// 設(shè)置主線程睡眠時(shí)間

pool.setMaintSleep(30);

// 設(shè)置TCP參數(shù)、連接超時(shí)等

pool.setNagle(false);

pool.setSocketTO(3000);

pool.setSocketConnectTO(0);

pool.setAliveCheck(true);

// 初始化連接池

pool.initialize();

// 壓縮設(shè)置,超過(guò)指定大小(單位為K)的數(shù)據(jù)都會(huì)被壓縮

mcc.setCompressEnable(true);

mcc.setCompressThreshold(64 * 1024);

}

/**

* 無(wú)參構(gòu)造

*/

protected MemcachedManager (){

}

// 受保護(hù)的對(duì)象

protected static MemcachedManager instance = new MemcachedManager();

/**

* 為受保護(hù)的對(duì)象提供一個(gè)公共的訪問(wèn)方法

*/

public static MemcachedManager getInstance () {

return instance;

}

/**

* 添加對(duì)象到緩存中,構(gòu)成方法重載

* @param key

* @param value

* @return

*/

public boolean add(String key,Object value) {

return mcc.add(key, value);

}

public boolean add (String key,Object value,Date expiry) {

return mcc.add(key, value,expiry);

}

public boolean replace (String key,Object value) {

return mcc.replace(key, value);

}

public boolean replace (String key,Object value,Date expiry)

{

return mcc.replace(key, value, expiry);

}

/**

* 根據(jù)指定的關(guān)鍵字獲取對(duì)象

*/

public Object get(String key) {

return mcc.get(key);

}

/**

* 利用MemCached測(cè)試將單個(gè)對(duì)象存入緩存,并從緩存中取出

*/

//? public static void main(String[] args) {

//????? // 得到MemcachedManager實(shí)例

//???? MemcachedManager cache = MemcachedManager.getInstance();

//

//???? // 創(chuàng)建UserDao對(duì)象

//???? UserDao userDao = new UserDao();

//???? // 查詢單個(gè)User對(duì)象

//???? User user = userDao.getUserById(4);

//

//???? // 將User對(duì)象添加到緩存中

//???? cache.add("user", user.getUname());

//

//???? // 將User對(duì)象從緩存中取出來(lái)

//???? String uname = (String)cache.get("user");

//

//???? System.out.println("從緩存中取出的對(duì)象為:" + uname);

//? }

/**

* 利用MemCached對(duì)象將集合存入緩存,并從緩存中取出

*/

@SuppressWarnings({ "unchecked", "rawtypes" })

public static void main(String[] args) {

// 得到MemcachedManager實(shí)例

MemcachedManager cache = MemcachedManager.getInstance();

// 創(chuàng)建UserDao對(duì)象

UserDao userDao = new UserDao();

// 得到集合對(duì)象

List userList = userDao.getUserList();

// 創(chuàng)建User對(duì)象

User user = null;

for (int i=0; i

{

// 循環(huán)遍歷集合對(duì)象

user = (User)userList.get(i);

user.getUid();

user.getUname();

user.getUpass();

// 將集合對(duì)象存入緩存中

cache.add("userList" + i,user.getUname());

// 將集合從緩存中取出

String uname = (String)cache.get("userList"+i);

System.out.println("從緩存中取得的集合為:" + uname);

}

}

}

結(jié)果從控制臺(tái)輸出:

從緩存中取得的集合為:uname

從緩存中取得的集合為:uname1

從緩存中取得的集合為:uname2

從緩存中取得的集合為:uname3

總結(jié)

以上是生活随笔為你收集整理的mysql memcached java_java缓存技术memcached实例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。